-
Notifications
You must be signed in to change notification settings - Fork 180
Conversation
kylef's patch was not ANSI C89 compliant, which caused a build failure with --enable-debug. I have added a commit to fix that. |
@ryao please rebase on spl-0.6.0-rc9 |
Revert commit 7731d46 Make spl_magazine_age() preempt-safe Reviewed-by: Richard Yao <ryao@cs.stonybrook.edu>
…cb6b9d598a86b7d Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
@ierdnah My tree should now be in sync. |
Thanks, it's ok now. I'm running zfs with a preemptible kernel. |
Finally, I would have expected you to also see issues in spl_cache_refill() since smp_processor_id() is called outside of the spin_lock(). Have you not seen warnings about this on the console? Although I'd expect them to be harmless and pretty easily fixed by pulling this under the spin_lock taken a few lines down. Care would just need to be taken to drop the spin_lock in the existing error case. @ryao If you could rework these patches I think we can get them. They are all straight forward enough. |
@behlendorf I have not seen that issue, although I have had preemption off for a while so that I could focus my attention on other areas. I was hitting too many issues related to PF_MEMALLOC at the time and I wanted to focus on ironing those out. I will turn my attention back to this soon. |
The spl_magazine_age function had the implied assumption that it will remain on its current cpu through its execution. In order to support preempt enabled kernels, this assumption had to be removed. The spl_kmem_magazine structure now holds the cpu id of the cpu it is local to. This allows spl_magazine_age to use this field when scheduling work to be done by the magazine's local cpu. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue openzfs#98
The following two commits in master should make the SPL preempt safe. However, the configure checks have been left in place for now until the zfs component is done and we can verify these changes resolve the issues as expected. 08850ed Avoid calling smp_processor_id in spl_magazine_age |
To support preempt enabled kernels in ZFS on Linux, there are a couple places where the ZFS code needs to disable interrupts. This change adds the Solaris preempt functions and maps them to the equivalent ZFS functions, allowing the ZFS to make use of them. Signed-off-by: Prakash Surya <surya1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #98
This includes a patch by kylef that implements preemption support. It appears to resolve issues in supporting kernel preemption.