All of lore.kernel.org
 help / color / mirror / Atom feed
* Xen & VT
@ 2005-03-09 22:02 Deepak Manohar
  0 siblings, 0 replies; 3+ messages in thread
From: Deepak Manohar @ 2005-03-09 22:02 UTC (permalink / raw)
  To: xen-devel

Hi all,

 I did see some previous threads regd Xen & VT. But cudnt find detailed answers.

So here is alist of questions:

1. Wht is the device access model with XenVT and unmod Linux . 
Obviously it cannot be using the front end back end, becos there is no
front end in unmod Linux. So how exactly is Xen still controlling
access to devices by unmod Linux?

2. System calls: How are system calls within unmod Linux being
serviced now? Since unmod Linux runs in ring 0 - the sys call int can
go directly to unmod Linux itself instead of via Xen. How is it being
done?

3. External interrupts: With multiple domains and with VT how exactly
are external interrupts being demultiplexed to the different domains?

4.  Task switches. How was task switching happening in XenoLinux? Now
VT specifically mentions that Task switches are not allowed in VMX
Non-root mode is there any change in the way Task switches are done.

5. Shadow page tables: How exactly has this changed from the existing
handling of the page tables & directories. I didnt quite understand
the explanation in /docs/misc/VMX_changes.txt


thanks.
Deepak


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Xen + VT
@ 2005-03-09 23:30 Deepak Manohar
  2005-03-12  3:38 ` Mark Williamson
  0 siblings, 1 reply; 3+ messages in thread
From: Deepak Manohar @ 2005-03-09 23:30 UTC (permalink / raw)
  To: xen-devel

Hi all,

I did see some previous threads regd Xen & VT. But cudnt find detailed answers.

So here is alist of questions:

1. Wht is the device access model with XenVT and unmod Linux .
Obviously it cannot be using the front end back end, becos there is no
front end in unmod Linux. So how exactly is Xen still controlling
access to devices by unmod Linux?

2. System calls: How are system calls within unmod Linux being
serviced now? Since unmod Linux runs in ring 0 - the sys call int can
go directly to unmod Linux itself instead of via Xen. How is it being
done?

3. External interrupts: With multiple domains and with VT how exactly
are external interrupts being demultiplexed to the different domains?

4.  Task switches. How was task switching happening in XenoLinux? Now
VT specifically mentions that Task switches are not allowed in VMX
Non-root mode is there any change in the way Task switches are done.

5. Shadow page tables: How exactly has this changed from the existing
handling of the page tables & directories. I didnt quite understand
the explanation in /docs/misc/VMX_changes.txt

thanks.
Deepak


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Xen + VT
  2005-03-09 23:30 Xen + VT Deepak Manohar
@ 2005-03-12  3:38 ` Mark Williamson
  0 siblings, 0 replies; 3+ messages in thread
From: Mark Williamson @ 2005-03-12  3:38 UTC (permalink / raw)
  To: xen-devel, Deepak Manohar

I have glanced through the code but not in detail...

Apologies for inevitably telling you some things you already know but this all 
seems like useful stuff to have in the archive.

> 1. Wht is the device access model with XenVT and unmod Linux .
> Obviously it cannot be using the front end back end, becos there is no
> front end in unmod Linux. So how exactly is Xen still controlling
> access to devices by unmod Linux?

Xen will trap IO accesses and notify dom0 of them.  A userspace IO emulator in 
dom0 emulates device behaviour based on these IO accesses.  The ioemu process 
signals to Xen if it should inject any events (e.g. interrupts) into the 
domain.

> 2. System calls: How are system calls within unmod Linux being
> serviced now? Since unmod Linux runs in ring 0 - the sys call int can
> go directly to unmod Linux itself instead of via Xen. How is it being
> done?

In fact, they go directly already.  Xen allows a guest to install its own 
syscall handler so that most syscalls are handled directly (Xen verifies to 
make sure that the guest is not submitting malicious details here).

VT makes a distinction of "root" and "non-root" execution.  Although the guest 
thinks it runs in ring 0, it's also running in VT "non-root" mode - this 
means it doesn't have full privileges over the machine.  Only Xen will run in 
"root" mode AND in ring 0, so only Xen has total control.

I imagine syscalls will continue to be handled directly, the difference being 
that the guest doesn't explicitly ask Xen to install the trap handler - it 
just installs it on it's virtual hardware.

I think VT-x allows the guest to deal with all its own syscalls transparently, 
or for the VMM to intercept them (which might be useful for various 
applications).

> 3. External interrupts: With multiple domains and with VT how exactly
> are external interrupts being demultiplexed to the different domains?

A fully virtualised guest doesn't really care about real hardware interrupts, 
so you wouldn't usually want VT-x to "pass through" interrupts from the real 
hardware (although I guess it could be useful for driver domains).  Usually, 
Xen would be entered for each "real" interrupt and would deal with it like it 
does now.

Emulated devices will deliver fake interrupts to the guest by signalling to 
Xen, which can then inject a fake interrupt into the virtual machine.

> 4.  Task switches. How was task switching happening in XenoLinux? Now
> VT specifically mentions that Task switches are not allowed in VMX
> Non-root mode is there any change in the way Task switches are done.

I looked at the code for this bit (xen/arch/x86/vmx.c):
---
    case EXIT_REASON_TASK_SWITCH:
        __vmx_bug(&regs);
        break;
---

"How strange", I thought.  Obviously, Xen/VT *does* support task switching, 
really :-)   One of the more surprising features of x86 is that it can 
actually do task switching _in hardware_ (!).  This is what the VT docs are 
referring to and it's what isn't supported under Xen.

HW task switching has some limitations, so Linux (and I imagine the BSDs, 
Windows) don't use it.  They'll be able to switch tasks quite happily under 
Xen/VT.  Some smaller OSs (Syllable springs to mind) do use the h/w task 
switching feature but it's not technically impossible to support.

A trap into Xen might still occur if page tables need to be switched (I'm not 
so clear on this bit).

> 5. Shadow page tables: How exactly has this changed from the existing
> handling of the page tables & directories. I didnt quite understand
> the explanation in /docs/misc/VMX_changes.txt

Page tables in vanilla Xen are exposed to the guest - it *knows* it's not 
running in a contiguous memory that starts at 0...  Xen/VT uses "full shadow 
mode" to hide this from the guest.

HTH,
Mark


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-03-12  3:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-09 22:02 Xen & VT Deepak Manohar
  -- strict thread matches above, loose matches on Subject: below --
2005-03-09 23:30 Xen + VT Deepak Manohar
2005-03-12  3:38 ` Mark Williamson

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.