On Fri, Jul 24, 2015 at 12:49:14PM -0700, David Rientjes wrote: > > I don't see the cond_resched() you propose to add, but the need for it is > obvious with a large user-written nr_hugepages in the above loop. > > The suggestion is to check the conditional, reschedule if needed (and if > so, recheck the conditional), and then allocate. > > Your third option looks fine and the best place to do the cond_resched(). > I was looking at your second option when I responded and compared it to > the first. We don't want to do cond_resched() immediately before or after > the allocation, the net result is the same: we may be pointlessly > allocating the hugepage and each hugepage allocation can be very > heavyweight. > > So I agree with your third option from the previous email. All right. We are talking about the same thing now. But I previously argued that the pointless allocation will a) not impact correctness and b) be so rare as to not impact performance. The problem with the third option is that it adds a bit of constant overhead all the time to compensate for not doing the pointless allocation. On my systems at least, the pointless allocation will happen, on average, less than once per boot. Unless my systems are vastly unrepresentative, the third option doesn't look appealing to me. > You may also want to include the actual text of the warning from the > kernel log in your commit message. When people encounter this, then will > probably grep in the kernel logs for some keywords to see if it was > already fixed and I fear your current commit message may allow it to be > missed. Ack. I should still have those warning in logfiles somewhere and can hunt them down. Jörn -- Act only according to that maxim whereby you can, at the same time, will that it should become a universal law. -- Immanuel Kant -- 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>