linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christopher Lameter <cl@linux.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: lsf-pc@lists.linux-foundation.org, linux-mm@kvack.org
Subject: Re: Memory management facing a 400Gpbs network link
Date: Tue, 19 Feb 2019 18:21:29 +0000	[thread overview]
Message-ID: <0100016906fdc80b-4471de43-3f22-45ec-8f77-f2ff1b76d9fe-000000@email.amazonses.com> (raw)
In-Reply-To: <20190219173622.GQ4525@dhcp22.suse.cz>

On Tue, 19 Feb 2019, Michal Hocko wrote:

> > Well the hardware is one problem. The problem that a single core cannot
> > handle the full memory bandwidth can be solved by spreading the
> > processing of the data to multiple processors. So I think the memory
> > subsystem could be aware of that? How do we load balance between cores so
> > that we can handle the full bandwidth?
>
> Isn't that something that poeple already do from userspace?

Yes. We can certainly do a lot from userspace manually but this is hard
and involves working around memory management to some extend. The higher
the I/O bandwidth become the more memory management becomes not that
useful anymore.

Can we improve the situation? A 2M VM was repeatedly discussed f.e.

Or some kind of memory management extension that allows working with large
contiguous blocks of memory? Which are problematic in their own
because large contiguous blocks may not be obtainable due to
fragmentation. Therefore the need to reboot the system if the
load changes.

> > The other is that the memory needs to be pinned and all sorts of special
> > measures and tuning needs to be done to make this actually work. Is there
> > any way to simplify this?
> >
> > Also the need for page pinning becomes a problem since the majority of the
> > memory of a system would need to be pinned. Actually the application seems
> > to be doing the memory management then?
>
> I am sorry but this still sounds too vague. There are certainly
> possibilities to handle part the MM functionality in the userspace.
> But why should we discuss that at the MM track. Do you envision any
> in kernel changes that would be needed?

Without adapting to these trends memory management may become just a
part of the system that is mainly useful for running executables, handling
configuration files etc but not for handling the data going through the
system.

We end up with data fully bypassing the kernel. Its difficult to handle
that way.

Sorry this is fuzzy. I wonder if there are other solutions than those
that I know of for these issues. The solutions mostly mean going directly
to hardware because the performance is just not available if the kernel is
involved. If that is unavoidable then we need clean APIs to be able to
carve out memory for these needs.

I can make this more concrete by listing some of the approaches that I am
seeing?

F.e.

A 400G NIC has the ability to route traffic to certain endpoints on
specific cores. Thus traffic volume can be segmented into multiple
streams that are able to be handled by single cores. However, many
data streams (video, audio) have implicit ordering constraints between
packets.



  reply	other threads:[~2019-02-19 18:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-12 18:25 Christopher Lameter
2019-02-15 16:34 ` Jerome Glisse
2019-02-19 12:26 ` Michal Hocko
2019-02-19 14:21   ` Christopher Lameter
2019-02-19 17:36     ` Michal Hocko
2019-02-19 18:21       ` Christopher Lameter [this message]
2019-02-19 18:42         ` Alexander Duyck
2019-02-19 19:13         ` Michal Hocko
2019-02-19 20:46           ` Christopher Lameter
2019-02-20  8:31             ` Michal Hocko
2019-02-21 18:15               ` Christopher Lameter
2019-02-21 18:24                 ` [Lsf-pc] " Rik van Riel
2019-02-21 18:47                   ` Christopher Lameter
2019-02-21 20:13                 ` Jerome Glisse

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=0100016906fdc80b-4471de43-3f22-45ec-8f77-f2ff1b76d9fe-000000@email.amazonses.com \
    --to=cl@linux.com \
    --cc=linux-mm@kvack.org \
    --cc=lsf-pc@lists.linux-foundation.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