[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53816439-6473-1c4f-2134-02cd1c46cfe8@kernel.dk>
Date: Tue, 7 Feb 2023 10:05:35 -0700
From: Jens Axboe <axboe@...nel.dk>
To: Jason Gunthorpe <jgg@...dia.com>
Cc: Alistair Popple <apopple@...dia.com>, linux-mm@...ck.org,
cgroups@...r.kernel.org, linux-kernel@...r.kernel.org,
jhubbard@...dia.com, tjmercier@...gle.com, hannes@...xchg.org,
surenb@...gle.com, mkoutny@...e.com, daniel@...ll.ch,
"Daniel P . Berrange" <berrange@...hat.com>,
Alex Williamson <alex.williamson@...hat.com>,
Pavel Begunkov <asml.silence@...il.com>,
io-uring@...r.kernel.org
Subject: Re: [PATCH 09/19] io_uring: convert to use vm_account
On 2/7/23 7:55?AM, Jason Gunthorpe wrote:
> On Tue, Feb 07, 2023 at 07:28:56AM -0700, Jens Axboe wrote:
>
>> Outside of that, we're now doubling the amount of memory associated with
>> tracking this. That isn't necessarily a showstopper, but it is not
>> ideal. I didn't take a look at the other conversions (again, because
>> they were not sent to me), but seems like the task_struct and flags
>> could just be passed in as they may very well be known to many/most
>> callers?
>
> For places doing the mm accounting type it cannot use the task struct
> as the underlying mm can be replaced and keep the task, IIRC.
>
> We just had a bug in VFIO related to this..
>
> If we could go back from the mm to the task (even a from a destroyed
> mm though) that might work to reduce storage?
Then maybe just nest them:
struct small_one {
struct mm_struct *mm;
struct user_struct *user;
};
struct big_one {
struct small_one foo;
struct task_struct *task;
enum vm_account_flags flags;
};
and have the real helpers deal with small_one, and wrappers around that
taking big_one that just passes in the missing bits. Then users that
don't need the extra bits can just use the right API.
--
Jens Axboe
Powered by blists - more mailing lists