Re: [PATCH 16/16] mm: pass get_user_pages_fast iterator arguments in a structure

From: Nadav Amit
Date: Tue Jun 11 2019 - 21:31:48 EST


> On Jun 11, 2019, at 5:52 PM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote:
>
> Christoph Hellwig's on June 12, 2019 12:41 am:
>> Instead of passing a set of always repeated arguments down the
>> get_user_pages_fast iterators, create a struct gup_args to hold them and
>> pass that by reference. This leads to an over 100 byte .text size
>> reduction for x86-64.
>
> What does this do for performance? I've found this pattern can be
> bad for store aliasing detection.

Note that sometimes such an optimization can also have adverse effect due to
stack protector code that gcc emits when you use such structs.

Matthew Wilcox encountered such a case:
https://patchwork.kernel.org/patch/10702741/