Re: [PATCH] hugetlb: cond_resched for set_max_huge_pages and follow_hugetlb_page

From: Jörn Engel
Date: Fri Jul 24 2015 - 16:49:22 EST


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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/