> > That function uses a global lock. fdatawait is quite common. This will > > likely cause performance problems in IO workloads. > > OK, I should avoid it. Maybe just RCU the hash table. > > You need to get that lock out of the hot path somehow. > > > > Probably better to try to put the data into a existing data structure, > > or if you cannot do that you would need some way to localize the lock. > > Yes, I have thought about adding some data like new pagecache tag or > new members in struct address_space, but it makes the size of heavily > used data structure larger so I'm not sure it's acceptable. > And localizing the lock is worth trying, I think. It's cheaper than a hash table lookup in the hot path. > > Or at least make it conditional of hwpoison errors being around. > > I'll try to do your suggestions, but I'm not sure your point of the > last one. Can you explain more about 'make it conditional' option? The code should check some flag first that is only set when hwpoison happened on the address space (or global, but that would mean that performance can go down globally when any error is around) -Andi -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>