Contention for the BKL in NFS client code, combined with CONFIG_PREEMPT_BKL being enabled in EL5, causes severe overhead on SMP systems in scheduling and locking code. The patch stream backported from upstream modifies the NFS client code to remove the BKL contention.
Created attachment 440741 [details] NFS client BKL removal
Created attachment 451651 [details] tarball with patches split into individual files Tarball with patches split out as individual files. There are some definite merge conflicts with 5.6-ish kernels, so this will take some work if we want to go with this.
I've forward ported the patches to more recent kernels and have test kernels on my people.redhat.com pages. Any testing of them would be appreciated: http://people.redhat.com/jlayton/
I've experimented with these patches over the last several months and haven't seen any problems. That said, they make me really nervous. This is just the sort of thing that can cause subtle, difficult to detect regressions. At this point, I think this is too risky, especially given that RHEL6 has most of this already. For now I'm going to NAK this bug, and suggest that anyone that's hitting this problem consider a move to RHEL6.
Development Management has reviewed and declined this request. You may appeal this decision by reopening this request.
Created attachment 488222 [details] patch -- forward ported patch For the record, here's the patchset I was playing with when I was considering this, if anyone is interested...
*** This bug has been marked as a duplicate of bug 519126 ***