From: Thomas Gleixner <tglx@linutronix.de>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Christoph Lameter <cl@gentwo.de>,
linux-kernel@vger.kernel.org, Nitesh Lal <nilal@redhat.com>,
Nicolas Saenz Julienne <nsaenzju@redhat.com>,
Frederic Weisbecker <frederic@kernel.org>,
Juri Lelli <juri.lelli@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Alex Belits <abelits@belits.com>, Peter Xu <peterx@redhat.com>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Oscar Shiang <oscar0225@livemail.tw>,
linux-rdma@vger.kernel.org
Subject: Re: [patch v12 00/13] extensible prctl task isolation interface and vmstat sync
Date: Wed, 04 May 2022 22:15:14 +0200 [thread overview]
Message-ID: <871qx9jbql.ffs@tglx> (raw)
In-Reply-To: <YnLMc5X8MZElk0NT@fuller.cnet>
On Wed, May 04 2022 at 15:56, Marcelo Tosatti wrote:
> On Wed, May 04, 2022 at 03:20:03PM +0200, Thomas Gleixner wrote:
>> Can we please focus on the initial problem of
>> providing a sensible isolation mechanism with well defined semantics?
>
> Case 2, however, was implicitly suggested by you (or at least i
> understood that):
>
> "Summary: The problem to be solved cannot be restricted to
>
> self_defined_important_task(OWN_WORLD);
>
> Policy is not a binary on/off problem. It's manifold across all levels
> of the stack and only a kernel problem when it comes down to the last
> line of defence.
>
> Up to the point where the kernel puts the line of last defence, policy
> is defined by the user/admin via mechanims provided by the kernel.
>
> Emphasis on "mechanims provided by the kernel", aka. user API.
>
> Just in case, I hope that I don't have to explain what level of scrunity
> and thought this requires."
Correct. This reasoning is still valid and I haven't changed my opinion
on that since then.
My main objections against the proposed solution back then were the all
or nothing approach and the implicit hard coded policies.
> The idea, as i understood was that certain task isolation features (or
> they parameters) might have to be changed at runtime (which depends on
> the task isolation features themselves, and the plan is to create
> an extensible interface).
Again. I'm not against useful controls to select the isolation an
application requires. I'm neither against extensible interfaces.
But I'm against overengineered implementations which lack any form of
sensible design and have ill defined semantics at the user ABI.
Designing user space ABI is _hard_ and needs a lot of thoughts. It's not
done with throwing something 'extensible' at the kernel and hope it
sticks. As I showed you in the review, the ABI is inconsistent in
itself, it has ill defined semantics and lacks any form of justification
of the approach taken.
Can we please take a step back and:
1) Define what is trying to be solved and what are the pieces known
today which need to be controlled in order to achieve the desired
isolation properties.
2) Describe the usage scenarios and the resulting constraints.
3) Describe the requirements for features on top, e.g. inheritance
or external control.
Once we have that, we can have a discussion about the desired control
granularity and how to support the extra features in a consistent and
well defined way.
A good and extensible UABI design comes with well defined functionality
for the start and an obvious and maintainable extension path. The most
important part is the well defined functionality.
There have been enough examples in the past how well received approaches
are, which lack the well defined part. Linus really loves to get a pull
request for something which cannot be described what it does, but could
be used for cool things in the future.
> So for case 2, all you'd have to do is to modify the application only
> once and allow the admin to configure the features.
That's still an orthogonal problem, which can be solved once a sensible
mechanism to control the isolation and handle it at the transition
points is in place. You surely want to consider it when designing the
UABI, but it's not required to create the real isolation mechanism in
the first place.
Problem decomposition is not an entirely new concept, really.
Thanks,
tglx
next prev parent reply other threads:[~2022-05-04 20:15 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-15 15:31 [patch v12 00/13] extensible prctl task isolation interface and vmstat sync Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 01/13] s390: add support for TIF_TASK_ISOL Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 02/13] x86: " Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 03/13] add basic task isolation prctl interface Marcelo Tosatti
2022-04-25 22:23 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 04/13] add prctl task isolation prctl docs and samples Marcelo Tosatti
2022-04-26 0:15 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 05/13] task isolation: sync vmstats on return to userspace Marcelo Tosatti
2022-04-25 23:06 ` Thomas Gleixner
2022-04-27 6:56 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 06/13] procfs: add per-pid task isolation state Marcelo Tosatti
2022-04-25 23:27 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 07/13] task isolation: sync vmstats conditional on changes Marcelo Tosatti
2022-03-17 14:51 ` Frederic Weisbecker
2022-04-27 8:03 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 08/13] task isolation: enable return to userspace processing Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 09/13] task isolation: add preempt notifier to sync per-CPU vmstat dirty info to thread info Marcelo Tosatti
2022-03-16 2:41 ` Oscar Shiang
2022-04-27 7:11 ` Thomas Gleixner
2022-04-27 12:09 ` Thomas Gleixner
2022-05-04 16:32 ` Marcelo Tosatti
2022-05-04 17:39 ` Thomas Gleixner
2022-03-15 15:31 ` [patch v12 10/13] KVM: x86: process isolation work from VM-entry code path Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 11/13] mm: vmstat: move need_update Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 12/13] mm: vmstat_refresh: avoid queueing work item if cpu stats are clean Marcelo Tosatti
2022-04-27 7:23 ` Thomas Gleixner
2022-05-03 19:17 ` Marcelo Tosatti
2022-03-15 15:31 ` [patch v12 13/13] task isolation: only TIF_TASK_ISOL if task isolation is enabled Marcelo Tosatti
2022-04-27 7:45 ` Thomas Gleixner
2022-05-03 19:12 ` Marcelo Tosatti
2022-05-04 13:03 ` Thomas Gleixner
2022-03-17 15:08 ` [patch v12 00/13] extensible prctl task isolation interface and vmstat sync Frederic Weisbecker
2022-04-25 16:29 ` Marcelo Tosatti
2022-04-25 21:12 ` Thomas Gleixner
2022-05-03 18:57 ` Marcelo Tosatti
2022-04-27 9:19 ` Christoph Lameter
2022-05-03 18:57 ` Marcelo Tosatti
2022-05-04 13:20 ` Thomas Gleixner
2022-05-04 18:56 ` Marcelo Tosatti
2022-05-04 20:15 ` Thomas Gleixner [this message]
2022-05-05 16:52 ` Marcelo Tosatti
2022-06-01 16:14 ` Marcelo Tosatti
2022-05-04 17:01 ` Tim Chen
2022-05-04 20:08 ` Marcelo Tosatti
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=871qx9jbql.ffs@tglx \
--to=tglx@linutronix.de \
--cc=abelits@belits.com \
--cc=bristot@redhat.com \
--cc=cl@gentwo.de \
--cc=frederic@kernel.org \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=nilal@redhat.com \
--cc=nsaenzju@redhat.com \
--cc=oscar0225@livemail.tw \
--cc=peterx@redhat.com \
--cc=peterz@infradead.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