From: Avi Kivity <avi@qumranet.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Ingo Molnar <mingo@elte.hu>,
kvm-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [kvm-devel] [PATCH][RFC] kvm-scheduler integration
Date: Tue, 10 Jul 2007 08:53:15 +0300 [thread overview]
Message-ID: <46931ECB.2060601@qumranet.com> (raw)
In-Reply-To: <1184029745.6005.402.camel@localhost.localdomain>
Rusty Russell wrote:
> On Mon, 2007-07-09 at 09:39 +0300, Avi Kivity wrote:
>
>> Rusty Russell wrote:
>>
>>> I think a "struct preempt_ops *" and a "void *preempt_ops_data" inside
>>> every task struct is a better idea. Call the config option
>>> PREEMPT_SCHED_HOOKS and now there's nothing kvm-specific about it...
>>>
>>>
>> I considered that, but your proposal does not allow a single task to
>> have multiple preemption hooks installed (hookers?!). Since in general
>> there's no reason to suppose that users would be mutually exclusive, we
>> need to have a struct hlist of these things. All in all this seemed to
>> indicate that the second user should have the honor of figuring out that
>> stuff.
>>
>
> No; this is a "I'm doing something magic and need to know before someone
> else takes the CPU". Almost by definition, you cannot have two of them
> at the same time. Let someone else try that if and when...
>
Why can't you have two of them? Say I'm writing a module to utilize
branch recording to be able to debug a process in reverse (of course
that doesn't really need sched hooks; let's pretend it does). Why can't
I debug a process that uses kvm?
More importantly, now the two subsystems have to know about each other
so they don't step on each other's toes.
> But having different hooks for different tasks makes a great deal of
> sense. This hook makes a great deal of sense.
>
If we make the hooks non-kvm-specific, I'd just add an hlist there.
> But KVM-specific code in the scheduler is just wrong, and I think we all
> know that.
>
Even if I eradicate all mention of kvm from the patch, it's still kvm
specific. kvm at least is sensitive to the exact point where we switch
in (it wants interrupts enabled) and it expects certain parameters to
the callbacks. If $new_abuser needs other conditions or parameters,
which is quite likely IMO as it will most likely have to do with
hardware, then we will need to update the hooks anyway.
Removing 'kvm' from the patch is easy; but I don't like to pretend to
generality where there ain't.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
next prev parent reply other threads:[~2007-07-10 5:53 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-08 12:58 [PATCH][RFC] kvm-scheduler integration Avi Kivity
2007-07-08 13:09 ` Ingo Molnar
2007-07-08 13:16 ` Avi Kivity
2007-07-08 13:36 ` Ingo Molnar
2007-07-08 13:35 ` Ingo Molnar
2007-07-08 13:41 ` Avi Kivity
2007-07-08 13:48 ` Ingo Molnar
2007-07-08 13:53 ` Avi Kivity
2007-07-08 13:59 ` Ingo Molnar
2007-07-08 15:13 ` Avi Kivity
2007-07-10 11:18 ` Avi Kivity
2007-07-10 11:30 ` Ingo Molnar
2007-07-08 23:32 ` [kvm-devel] " Rusty Russell
2007-07-09 6:39 ` Avi Kivity
2007-07-10 1:09 ` Rusty Russell
2007-07-10 5:53 ` Avi Kivity [this message]
2007-07-10 6:47 ` Rusty Russell
2007-07-10 7:19 ` Avi Kivity
2007-07-10 8:01 ` Rusty Russell
2007-07-10 8:24 ` Avi Kivity
2007-07-11 5:50 ` Avi Kivity
2007-07-08 19:07 ` Andi Kleen
2007-07-09 6:41 ` Avi Kivity
2007-07-09 8:50 ` Shaohua Li
2007-07-09 9:46 ` Avi Kivity
2007-07-09 10:21 ` Avi Kivity
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=46931ECB.2060601@qumranet.com \
--to=avi@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rusty@rustcorp.com.au \
/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