Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Avoid kmem_alloc in IO path #667

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

WIP: Avoid kmem_alloc in IO path #667

wants to merge 1 commit into from

Conversation

lundman
Copy link
Contributor

@lundman lundman commented Nov 13, 2018

There appears to be some issues with too-frequent allocations in spl-kmem
and this is especially noticable due to allocations we do for each
read or write IO operation.
We embed the vdev_buf into zio struct itself, and since ldi_vnode has
to call buf_alloc() we also allow ldi_iokit to allocate a local holder.
(It is inconvenient to try to include C++ headers in zio.h).

If this does speed up IO, it is only because we now avoid the real problem
which is still something we should also address

There appears to be some issues with too-frequent allocations in spl-kmem
and this is especially noticable due to allocations we do for each
read or write IO operation.
We embed the vdev_buf into zio struct itself, and since ldi_vnode has
to call buf_alloc() we also allow ldi_iokit to allocate a local holder.
(It is inconvenient to try to include C++ headers in zio.h).

If this does speed up IO, it is only because we now avoid the real problem
which is still something we should also address
@JMoVS
Copy link
Contributor

JMoVS commented Dec 27, 2018

I'm running this now (rebased on master). Will report back how I fare. I've been heaving stabiity and performance problems lately on Mojave, maybe this'll help

@JMoVS
Copy link
Contributor

JMoVS commented Mar 4, 2019

didn't see any obvious differences in speed, but maybe my hard drive setup is in general just too slow :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants