From: Juergen Gross <juergen.gross@ts.fujitsu.com>
To: Keir Fraser <keir.fraser@eu.citrix.com>
Cc: Tim Deegan <Tim.Deegan@eu.citrix.com>,
George Dunlap <dunlapg@umich.edu>,
Zhigang Wang <zhigang.x.wang@oracle.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: Cpu pools discussion
Date: Thu, 30 Jul 2009 07:46:38 +0200 [thread overview]
Message-ID: <4A7133BE.4040905@ts.fujitsu.com> (raw)
In-Reply-To: <C6960674.10E13%keir.fraser@eu.citrix.com>
Keir Fraser wrote:
> On 29/07/2009 13:33, "Juergen Gross" <juergen.gross@ts.fujitsu.com> wrote:
>
>>>> Would you feel better if I'd try to eliminate the reason for cpupool_borrow?
>>>> This function is needed only for continue_hypercall_on_cpu outside of the
>>>> current pool. I think it should be possible to replace those by
>>>> on_selected_cpus with less impact on the whole system.
>>> Some of the stuff in the continuation handlers cannot be executed in irq
>>> context. 'Fixing' that would make many of the users ugly and less
>>> maintainable, so getting borrow/return right is the better answer I think.
>> The alternative would be a tasklet set up in irq.
>> And we are speaking of 3 users.
>> I could try a patch and then we could compare the two solutions. What do you
>> think?
>
> This would work for a couple of callers, but some really need to be running
> in dom0 context. Or, more precisely, not the context of some other domain
> (softirqs synchronously preempt execution of a vcpu context). This can lead
> to subtle deadlocks, for example in freeze_domains() and in __cpu_die(),
> because we may need the vcpu we have snchronously preempted to make some
> progress for ourselves to be able to get past a spin loop.
Okay.
> Another alternative might be to create a 'hypervisor thread', either
> dynamically, or a per-cpu worker thread, and do the work in that. Of course
> that has its own complexities and these threads would also have their own
> interactions with cpu pools to keep them pinned on the appropriate physical
> cpu. I don't know whether this would really work out simpler.
There should be an easy solution for this: What you are suggesting here sounds
like a "hypervisor domain" similar to the the idle domain, but with high
priority and normally all vcpus blocked.
The interactions of this domain with cpupools would be the same as for the
idle domain.
I think this approach could be attractive, but the question is if the pros
outweigh the cons. OTOH such a domain could open interesting opportunities.
Juergen
--
Juergen Gross Principal Developer Operating Systems
TSP ES&S SWE OS6 Telephone: +49 (0) 89 636 47950
Fujitsu Technolgy Solutions e-mail: juergen.gross@ts.fujitsu.com
Otto-Hahn-Ring 6 Internet: ts.fujitsu.com
D-81739 Muenchen Company details: ts.fujitsu.com/imprint.html
next prev parent reply other threads:[~2009-07-30 5:46 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-27 15:20 Cpu pools discussion George Dunlap
2009-07-27 15:50 ` Keir Fraser
2009-07-28 0:41 ` Zhigang Wang
2009-07-28 9:19 ` Tim Deegan
2009-07-28 10:15 ` Juergen Gross
2009-07-28 12:50 ` George Dunlap
2009-07-28 13:07 ` Tim Deegan
2009-07-28 13:24 ` Juergen Gross
2009-07-28 13:31 ` Tim Deegan
2009-07-28 13:39 ` Juergen Gross
2009-07-28 13:47 ` George Dunlap
2009-07-28 13:57 ` Juergen Gross
2009-07-28 15:29 ` Dan Magenheimer
2009-07-28 15:49 ` Keir Fraser
2009-07-28 16:26 ` George Dunlap
2009-07-29 0:29 ` Zhigang Wang
2009-07-29 5:47 ` Juergen Gross
2009-07-28 13:41 ` George Dunlap
2009-07-28 13:55 ` Keir Fraser
2009-07-29 6:14 ` Juergen Gross
2009-07-29 7:39 ` Keir Fraser
2009-07-29 8:52 ` Juergen Gross
2009-07-29 9:35 ` Keir Fraser
2009-07-29 11:06 ` Juergen Gross
2009-07-29 12:28 ` Keir Fraser
2009-07-29 12:33 ` Juergen Gross
2009-07-29 13:00 ` Keir Fraser
2009-07-30 5:46 ` Juergen Gross [this message]
2009-07-30 8:30 ` Keir Fraser
2009-07-30 8:58 ` Juergen Gross
2009-07-30 12:51 ` Juergen Gross
2009-07-30 13:18 ` Keir Fraser
2009-07-31 5:25 ` Juergen Gross
2009-07-28 5:40 ` Juergen Gross
2009-07-28 9:09 ` Keir Fraser
2009-07-28 10:19 ` Juergen Gross
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=4A7133BE.4040905@ts.fujitsu.com \
--to=juergen.gross@ts.fujitsu.com \
--cc=Tim.Deegan@eu.citrix.com \
--cc=dunlapg@umich.edu \
--cc=keir.fraser@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
--cc=zhigang.x.wang@oracle.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.