On Sun, Jul 26, 2020 at 01:30:32PM -0700, Hugh Dickins wrote: > On Sat, 25 Jul 2020, Hugh Dickins wrote: > > On Sat, 25 Jul 2020, Hugh Dickins wrote: > > > On Sat, 25 Jul 2020, Linus Torvalds wrote: > > > > On Sat, Jul 25, 2020 at 3:14 AM Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > > > > > > > > > Heh. I too thought about this. And just in case, your patch looks correct > > > > > to me. But I can't really comment this behavioural change. Perhaps it > > > > > should come in a separate patch? > > > > > > > > We could do that. At the same time, I think both parts change how the > > > > waitqueue works that it might as well just be one "fix page_bit_wait > > > > waitqueue usage". > > > > > > > > But let's wait to see what Hugh's numbers say. > > > > > > Oh no, no no: sorry for getting your hopes up there, I won't come up > > > with any numbers more significant than "0 out of 10" machines crashed. > > > I know it would be *really* useful if I could come up with performance > > > comparisons, or steer someone else to do so: but I'm sorry, cannot. > > > > > > Currently it's actually 1 out of 10 machines crashed, for the same > > > driverland issue seen last time, maybe it's a bad machine; and another > > > 1 out of the 10 machines went AWOL for unknown reasons, but probably > > > something outside the kernel got confused by the stress. No reason > > > to suspect your changes at all (but some unanalyzed "failure"s, of > > > dubious significance, accumulating like last time). > > > > > > I'm optimistic: nothing has happened to warn us off your changes. > > > > Less optimistic now, I'm afraid. > > > > The machine I said had (twice) crashed coincidentally in driverland > > (some USB completion thing): that machine I set running a comparison > > kernel without your changes this morning, while the others still > > running with your changes; and it has now passed the point where it > > twice crashed before (the most troublesome test), without crashing. > > > > Surprising: maybe still just coincidence, but I must look closer at > > the crashes. > > > > The others have now completed, and one other crashed in that > > troublesome test, but sadly without yielding any crash info. > > > > I've just set comparison runs going on them all, to judge whether > > to take the "failure"s seriously; and I'll look more closely at them. > > The comparison runs have not yet completed (except for the one started > early), but they have all got past the most interesting tests, and it's > clear that they do not have the "failure"s seen with your patches. > > >From that I can only conclude that your patches make a difference. > > I've deduced nothing useful from the logs, will have to leave that > to others here with more experience of them. But my assumption now > is that you have successfully removed one bottleneck, so the tests > get somewhat further and now stick in the next bottleneck, whatever > that may be. Which shows up as "failure", where the unlock_page() > wake_up_page_bit() bottleneck had allowed the tests to proceed in > a more serially sedate way. > > The xhci handle_cmd_completion list_del bugs (on an older version > of the driver): weird, nothing to do with page wakeups, I'll just > have to assume that it's some driver bug exposed by the greater > stress allowed down, and let driver people investigate (if it > still manifests) when we take in your improvements. Linus just pointed me at this thread. If you could run: echo -n 'module xhci_hcd =p' > /sys/kernel/debug/dynamic_debug/control and run the same workload to see if anything shows up in the log when xhci crashes, that would be great. Although if you are using an "older version" of the driver, there's not much I can suggest except update to a newer one :) thanks, greg k-h