[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Cpu pools discussion


  • To: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
  • From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Date: Thu, 30 Jul 2009 07:46:38 +0200
  • Cc: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, George Dunlap <dunlapg@xxxxxxxxx>, Zhigang Wang <zhigang.x.wang@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 29 Jul 2009 22:47:02 -0700
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:CC:Subject:References: In-Reply-To:X-Enigmail-Version:Content-Type: Content-Transfer-Encoding; b=SX5PHhoxTMdOkKm9V+h99+lKJzR2d0/ki4bMTyHms0XuLqHZ4WLj9AfM xrh0NihccHbmGoUAOd0mSA2BglBXlJDHWBclTyK3PdlwzaZ7c4bEzNTsY ARqxvsAFjpKl1KPpNGxc50eFPPEYNbS9Z2jXHJaNywdhI9kFtfLB3+c5u 9A7eXeKjyEchBWvtQs1+zEYTDXlxJ3ygXxy57S42R5Prahxjjc35qa8Ms flxL1lN2zIxmVa3EIJwmgQBAxd3Xe;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Keir Fraser wrote:
> On 29/07/2009 13:33, "Juergen Gross" <juergen.gross@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx
Otto-Hahn-Ring 6                        Internet: ts.fujitsu.com
D-81739 Muenchen                 Company details: ts.fujitsu.com/imprint.html

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.