Tags: ldu4/linux
Tags
mm/spf: fix accounting in SPF As reported by Vinayak Menon, check_sync_rss_stat() should be called in the speculative path. In addition, rework the code to count the page fault in the case the checks done prior to calling handle_pte_fault() detect that the page fault cannot succeed. Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
mm: vm_sequence is protected by semaphore The vm_sequence is protected by the mmap_sem (and potentially by the i_mmap_sem for file mapping), but the seqcount API wants the writers to be protected against preemption which is not need because of the semaphore. There is no seqcount API for semaphore, and that will not match our case because some operation are not protected by the mmap_lock but using the i_mmap_sem managed by the filesystem. This means the lock attached to the seqcount would have to be change in the case of a file mapping. That's not a big issue but useless today as the file mapping are not handled using the speculative page fault handler. Using raw API to prevent lockdep to complain until seqcount API is dealing with semaphores and the attached semaphore is managed correctly for file mapping. Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
mm/spf: fix accounting in SPF As reported by Vinayak Menon, check_sync_rss_stat() should be called in the speculative path. In addition, rework the code to count the page fault in the case the checks done prior to calling handle_pte_fault() detect that the page fault cannot succeed. Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
mm: Add a speculative page fault switch in sysctl This allows to turn on/off the use of the speculative page fault handler. By default it's turned on. Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
pci: test for unexpectedly disabled bridges The all-ones value is not just a "device didn't exist" case, it's also potentially a quite valid value, so not restoring it would be wrong. What *would* be interesting is to hear where the bad values came from in the first place. It sounds like the device state is saved after the PCI bus controller in front of the device has been crapped on, resulting in the PCI config cycles never reaching the device at all. Something along this patch (together with suspend/resume debugging output) migth help pinpoint it. But it really sounds like something totally brokenly turned off the PCI bridge (some ACPI shutdown crud? I wouldn't be entirely surprised) Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
pci: test for unexpectedly disabled bridges The all-ones value is not just a "device didn't exist" case, it's also potentially a quite valid value, so not restoring it would be wrong. What *would* be interesting is to hear where the bad values came from in the first place. It sounds like the device state is saved after the PCI bus controller in front of the device has been crapped on, resulting in the PCI config cycles never reaching the device at all. Something along this patch (together with suspend/resume debugging output) migth help pinpoint it. But it really sounds like something totally brokenly turned off the PCI bridge (some ACPI shutdown crud? I wouldn't be entirely surprised) Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
pci: test for unexpectedly disabled bridges The all-ones value is not just a "device didn't exist" case, it's also potentially a quite valid value, so not restoring it would be wrong. What *would* be interesting is to hear where the bad values came from in the first place. It sounds like the device state is saved after the PCI bus controller in front of the device has been crapped on, resulting in the PCI config cycles never reaching the device at all. Something along this patch (together with suspend/resume debugging output) migth help pinpoint it. But it really sounds like something totally brokenly turned off the PCI bridge (some ACPI shutdown crud? I wouldn't be entirely surprised) Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
PreviousNext