linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Eric Dumazet <edumazet@google.com>
Cc: Michal Hocko <mhocko@kernel.org>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: __GFP_REPEAT usage in fq_alloc_node
Date: Fri, 6 Jan 2017 18:18:15 +0100	[thread overview]
Message-ID: <e37eda74-e796-ff45-4c26-0c56bdf74967@suse.cz> (raw)
In-Reply-To: <CANn89i+pRwa3KES1ane4ZfBpw4Y7Ne5OLZmkt=K8n5E6qF9xvA@mail.gmail.com>

On 01/06/2017 06:08 PM, Eric Dumazet wrote:
> On Fri, Jan 6, 2017 at 8:55 AM, Vlastimil Babka <vbabka@suse.cz> wrote:
>> On 01/06/2017 05:48 PM, Eric Dumazet wrote:
>>> On Fri, Jan 6, 2017 at 8:31 AM, Vlastimil Babka <vbabka@suse.cz> wrote:
>>>
>>>>
>>>> I wonder what's that cause of the penalty (when accessing the vmapped
>>>> area I suppose?) Is it higher risk of collisions cache misses within the
>>>> area, compared to consecutive physical adresses?
>>>
>>> I believe tests were done with 48 fq qdisc, each having 2^16 slots.
>>> So I had 48 blocs,of 524288 bytes.
>>>
>>> Trying a bit harder at setup time to get 128 consecutive pages got
>>> less TLB pressure.
>>
>> Hmm that's rather surprising to me. TLB caches the page table lookups
>> and the PFN's of the physical pages it translates to shouldn't matter -
>> the page tables will look the same. With 128 consecutive pages could
>> manifest the reduced collision cache miss effect though.
>>
> 
> To be clear, the difference came from :
> 
> Using kmalloc() to allocate 48 x 524288 bytes
> 
> Or using vmalloc()
> 
> Are you telling me HugePages are not in play there ?

Oh that's certainly a difference, as kmalloc() will give you the kernel
mapping which can use 1GB Hugepages. But if you just combine these
kmalloc chunks into vmalloc mapping (IIUC that's what your RFC was
doing?), you lose that benefit AFAIK. On the other hand I recall reading
that AMD Zen will have PTE Coalescing [1] which, if true and I
understand that correctly, would indeed result in better TLB usage with
adjacent page table entries pointing to consecutive pages. But perhaps
the starting pte's position will also have to be aligned to make this
work, dunno.

[1]
http://www.anandtech.com/show/10591/amd-zen-microarchiture-part-2-extracting-instructionlevel-parallelism/6

      reply	other threads:[~2017-01-06 17:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06 15:20 __GFP_REPEAT usage in fq_alloc_node Michal Hocko
2017-01-06 15:39 ` Eric Dumazet
2017-01-06 16:07   ` Michal Hocko
2017-01-06 16:19     ` Michal Hocko
2017-01-07  3:33       ` [PATCH] net: use kvmalloc rather than open coded variant kbuild test robot
2017-01-07  9:19         ` Michal Hocko
2017-01-07  3:35       ` kbuild test robot
2017-01-09 10:22       ` __GFP_REPEAT usage in fq_alloc_node Michal Hocko
2017-01-09 16:00         ` Eric Dumazet
2017-01-09 17:45           ` Michal Hocko
2017-01-09 17:53             ` Eric Dumazet
2017-01-14 23:43     ` [PATCH] net_sched: use kvmalloc rather than opencoded variant kbuild test robot
2017-01-16  8:54       ` Michal Hocko
2017-01-06 16:31   ` __GFP_REPEAT usage in fq_alloc_node Vlastimil Babka
2017-01-06 16:48     ` Eric Dumazet
2017-01-06 16:50       ` Eric Dumazet
2017-01-06 16:55       ` Vlastimil Babka
2017-01-06 17:08         ` Eric Dumazet
2017-01-06 17:18           ` Vlastimil Babka [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e37eda74-e796-ff45-4c26-0c56bdf74967@suse.cz \
    --to=vbabka@suse.cz \
    --cc=edumazet@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).