* [PATCH] [TPM] Remove an unused data structure
@ 2007-03-08 16:23 Stefan Berger
2007-03-09 8:16 ` question about the guestOS boot tgh
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Berger @ 2007-03-08 16:23 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 133 bytes --]
Remove an unused data structure from TPM frontend.
Some more code style changes.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
[-- Attachment #2: tpmfront_cleanup.diff --]
[-- Type: text/x-patch, Size: 4573 bytes --]
---
xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.c | 2 -
xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.h | 13 -------
xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c | 18 ----------
3 files changed, 1 insertion(+), 32 deletions(-)
Index: root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.c
===================================================================
--- root.orig/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.c
+++ root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.c
@@ -504,7 +504,6 @@ static struct tpm_vendor_specific tpm_vt
};
struct tpm_chip *init_vtpm(struct device *dev,
- struct tpm_virtual_device *tvd,
struct tpm_private *tp)
{
long rc;
@@ -516,7 +515,6 @@ struct tpm_chip *init_vtpm(struct device
return ERR_PTR(-ENOMEM);
vtpm_state_init(vtpms);
- vtpms->tpmvd = tvd;
vtpms->tpm_private = tp;
chip = tpm_register_hardware(dev, &tpm_vtpm);
Index: root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.h
===================================================================
--- root.orig/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.h
+++ root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.h
@@ -4,16 +4,6 @@
struct tpm_chip;
struct tpm_private;
-struct tpm_virtual_device {
- /*
- * This field indicates the maximum size the driver can
- * transfer in one chunk. It is filled in by the front-end
- * driver and should be propagated to the generic tpm driver
- * for allocation of buffers.
- */
- unsigned int max_tx_size;
-};
-
struct vtpm_state {
struct transmission *current_request;
spinlock_t req_list_lock;
@@ -30,8 +20,6 @@ struct vtpm_state {
unsigned long disconnect_time;
- struct tpm_virtual_device *tpmvd;
-
/*
* The following is a private structure of the underlying
* driver. It is passed as parameter in the send function.
@@ -51,7 +39,6 @@ int vtpm_vd_send(struct tpm_private * tp
/* these functions are offered by tpm_vtpm.c */
struct tpm_chip *init_vtpm(struct device *,
- struct tpm_virtual_device *,
struct tpm_private *);
void cleanup_vtpm(struct device *);
int vtpm_vd_recv(const struct tpm_chip* chip,
Index: root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
===================================================================
--- root.orig/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
+++ root/xen-unstable.hg/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
@@ -369,10 +369,6 @@ static void backend_changed(struct xenbu
}
}
-struct tpm_virtual_device tvd = {
- .max_tx_size = PAGE_SIZE * TPMIF_TX_RING_SIZE,
-};
-
static int tpmfront_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id)
{
@@ -383,7 +379,7 @@ static int tpmfront_probe(struct xenbus_
if (!tp)
return -ENOMEM;
- tp->chip = init_vtpm(&dev->dev, &tvd, tp);
+ tp->chip = init_vtpm(&dev->dev, tp);
if (IS_ERR(tp->chip))
return PTR_ERR(tp->chip);
@@ -500,11 +496,6 @@ static void __init init_tpm_xenbus(void)
xenbus_register_frontend(&tpmfront);
}
-static void __exit exit_tpm_xenbus(void)
-{
- xenbus_unregister_driver(&tpmfront);
-}
-
static int tpmif_allocate_tx_buffers(struct tpm_private *tp)
{
unsigned int i;
@@ -530,13 +521,11 @@ static void tpmif_free_tx_buffers(struct
static void tpmif_rx_action(unsigned long priv)
{
struct tpm_private *tp = (struct tpm_private *)priv;
-
int i = 0;
unsigned int received;
unsigned int offset = 0;
u8 *buffer;
- tpmif_tx_request_t *tx;
- tx = &tp->tx->ring[i].req;
+ tpmif_tx_request_t *tx = &tp->tx->ring[i].req;
atomic_set(&tp->tx_busy, 0);
wake_up_interruptible(&tp->wait_q);
@@ -545,7 +534,7 @@ static void tpmif_rx_action(unsigned lon
buffer = kmalloc(received, GFP_ATOMIC);
if (!buffer)
- goto exit;
+ return;
for (i = 0; i < TPMIF_TX_RING_SIZE && offset < received; i++) {
struct tx_buffer *txb = tp->tx_buffers[i];
@@ -566,10 +555,6 @@ static void tpmif_rx_action(unsigned lon
vtpm_vd_recv(tp->chip, buffer, received, tp->tx_remember);
kfree(buffer);
-
-exit:
-
- return;
}
@@ -730,13 +715,6 @@ static int __init tpmif_init(void)
}
-void __exit tpmif_exit(void)
-{
- exit_tpm_xenbus();
- tpm_private_put();
- gnttab_free_grant_references(gref_head);
-}
-
module_init(tpmif_init);
MODULE_LICENSE("Dual BSD/GPL");
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 11+ messages in thread* question about the guestOS boot
2007-03-08 16:23 [PATCH] [TPM] Remove an unused data structure Stefan Berger
@ 2007-03-09 8:16 ` tgh
2007-03-09 9:45 ` Petersson, Mats
0 siblings, 1 reply; 11+ messages in thread
From: tgh @ 2007-03-09 8:16 UTC (permalink / raw)
To: xen-devel
hi
I try to understand the code about vm create
and now I am confused about which code does the guestOS start with to run ?
xen domain0 uses the function xc_domain_creat() and xc_linux_build() to
prepare the necessary struct such as vcpu_guest_context and other things
for vm guestOS to bootup , in the xc_linux_build(),the initrd is also
loaded in,is it right?
then guestOS does not run the regular bootloader ,is it right?
then I am confused about which function or which lines of the code does
the guestOS start with ?
could you help me
Thanks in advance
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: question about the guestOS boot
2007-03-09 8:16 ` question about the guestOS boot tgh
@ 2007-03-09 9:45 ` Petersson, Mats
2007-03-09 10:13 ` tgh
0 siblings, 1 reply; 11+ messages in thread
From: Petersson, Mats @ 2007-03-09 9:45 UTC (permalink / raw)
To: tgh, xen-devel
> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
> Sent: 09 March 2007 08:17
> To: xen-devel
> Subject: [Xen-devel] question about the guestOS boot
>
> hi
> I try to understand the code about vm create
> and now I am confused about which code does the guestOS start
> with to run ?
>
> xen domain0 uses the function xc_domain_creat() and
> xc_linux_build() to
> prepare the necessary struct such as vcpu_guest_context and
> other things
> for vm guestOS to bootup , in the xc_linux_build(),the initrd is also
> loaded in,is it right?
> then guestOS does not run the regular bootloader ,is it right?
That is correct.
>
> then I am confused about which function or which lines of the
> code does
> the guestOS start with ?
Can you explain your confusion a bit more - I'm not entirely sure what
you're asking, and it's very hard to answer questions when you don't
know the actual question.
Also, it's much better if you explain a little bit about what you're
trying to achieve (I've previously used the example of someone having a
puncture, going to ask the mechanic how to loosen a wheel-nut, then
going to ask how to jack up the car, then asking how to tighten the
wheel-nut, when the actual problem is a punctured tyre, and the "right"
question to ask a mechanic is "How do I replace my punctured tyre with
the spare wheel?").
Asking the overall question you're trying to solve will give you a more
complete answer to what you're trying to do, rather than a detailed
answer on the point where you're at (and that may actually not help your
overall problem at all).
--
Mats
>
>
> could you help me
>
> Thanks in advance
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: question about the guestOS boot
2007-03-09 9:45 ` Petersson, Mats
@ 2007-03-09 10:13 ` tgh
2007-03-09 10:43 ` Petersson, Mats
0 siblings, 1 reply; 11+ messages in thread
From: tgh @ 2007-03-09 10:13 UTC (permalink / raw)
To: Petersson, Mats; +Cc: xen-devel
Thank you for your reply and guide
I try to understand how does the xen provide a virtual platform for
guestOS to run
dom0 provides hardware abstract struct as well as software struct for
guestOS
and when dom0 boots a vm ,it does prepare the vm vcpu_guest_context for
guestOS to run
so when VM starts ( the same as our PC resets) ,its vcpu isnot an empty
context like the regular ones without virtualization ,so it doesnot
start from the regular point or function or firmware
then I do not know where does the guestOS start with in the code
could you told me where or which function does the guestOS start with ?
Thanks in advance
Petersson, Mats 写道:
>
>
>
>> -----Original Message-----
>> From: xen-devel-bounces@lists.xensource.com
>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
>> Sent: 09 March 2007 08:17
>> To: xen-devel
>> Subject: [Xen-devel] question about the guestOS boot
>>
>> hi
>> I try to understand the code about vm create
>> and now I am confused about which code does the guestOS start
>> with to run ?
>>
>> xen domain0 uses the function xc_domain_creat() and
>> xc_linux_build() to
>> prepare the necessary struct such as vcpu_guest_context and
>> other things
>> for vm guestOS to bootup , in the xc_linux_build(),the initrd is also
>> loaded in,is it right?
>> then guestOS does not run the regular bootloader ,is it right?
>>
>
> That is correct.
>
>> then I am confused about which function or which lines of the
>> code does
>> the guestOS start with ?
>>
>
> Can you explain your confusion a bit more - I'm not entirely sure what
> you're asking, and it's very hard to answer questions when you don't
> know the actual question.
>
> Also, it's much better if you explain a little bit about what you're
> trying to achieve (I've previously used the example of someone having a
> puncture, going to ask the mechanic how to loosen a wheel-nut, then
> going to ask how to jack up the car, then asking how to tighten the
> wheel-nut, when the actual problem is a punctured tyre, and the "right"
> question to ask a mechanic is "How do I replace my punctured tyre with
> the spare wheel?").
>
> Asking the overall question you're trying to solve will give you a more
> complete answer to what you're trying to do, rather than a detailed
> answer on the point where you're at (and that may actually not help your
> overall problem at all).
>
> --
> Mats
>
>> could you help me
>>
>> Thanks in advance
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>>
>>
>>
>>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: question about the guestOS boot
2007-03-09 10:13 ` tgh
@ 2007-03-09 10:43 ` Petersson, Mats
2007-03-09 12:09 ` tgh
2007-03-10 19:13 ` Mark Williamson
0 siblings, 2 replies; 11+ messages in thread
From: Petersson, Mats @ 2007-03-09 10:43 UTC (permalink / raw)
To: tgh; +Cc: xen-devel
> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
> Sent: 09 March 2007 10:13
> To: Petersson, Mats
> Cc: xen-devel
> Subject: Re: [Xen-devel] question about the guestOS boot
>
> Thank you for your reply and guide
> I try to understand how does the xen provide a virtual platform for
> guestOS to run
> dom0 provides hardware abstract struct as well as software struct for
> guestOS
>
> and when dom0 boots a vm ,it does prepare the vm
> vcpu_guest_context for
> guestOS to run
> so when VM starts ( the same as our PC resets) ,its vcpu
> isnot an empty
> context like the regular ones without virtualization ,so it doesnot
> start from the regular point or function or firmware
Ehm, ok, lets debunk the first point, which is that the processor is "CPU is empty" when the processor comes out of reset. That is not at all true - yes, most registers are zero, but they still have a DEFINED value out of reset, which may or may not be zero.
But more to the point of "booting" a virtual machine. Of course, we have to NOT reset the processor to boot a virtual machine, as that would loose the original Xen + Dom0 that is already loaded. So Xen has to perform the load/initialize function.
But this is no different from what is done in grub or whatever boot-loader you use. It loads the code into memory and sets up some basic start-values in the registers, then jumps to a starting point somewhere.
In the case of a Xenified kernel, it's at the beginning of the "text" segment, that is, the label _start. The rIP of the VCPU is set to point to this address, and the other registers are set to some sensible values (such as a pointer to any kernel arguments and perhaps some environmental values in other registers that make sense - I haven't looked very closely at it).
There is a difference in Xen-linux start and a regular linux start, and that is that Xen-linux starts in 32-bit protected mode (but Paging is not yet enabled), whereas the regular Linux starts with real-mode (16-bit mode), and does a few instructions before it gets into 32-bit mode.
>
> then I do not know where does the guestOS start with in the code
> could you told me where or which function does the guestOS
> start with ?
As above. The actual code that the Xen kernel starts at is in .../linux-<ver>-xen/arch/<mach>/kernel/head-xen.S
--
Mats
>
> Thanks in advance
>
>
>
>
> Petersson, Mats 写道:
> >
> >
> >
> >> -----Original Message-----
> >> From: xen-devel-bounces@lists.xensource.com
> >> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
> >> Sent: 09 March 2007 08:17
> >> To: xen-devel
> >> Subject: [Xen-devel] question about the guestOS boot
> >>
> >> hi
> >> I try to understand the code about vm create
> >> and now I am confused about which code does the guestOS start
> >> with to run ?
> >>
> >> xen domain0 uses the function xc_domain_creat() and
> >> xc_linux_build() to
> >> prepare the necessary struct such as vcpu_guest_context and
> >> other things
> >> for vm guestOS to bootup , in the xc_linux_build(),the
> initrd is also
> >> loaded in,is it right?
> >> then guestOS does not run the regular bootloader ,is it right?
> >>
> >
> > That is correct.
> >
> >> then I am confused about which function or which lines of the
> >> code does
> >> the guestOS start with ?
> >>
> >
> > Can you explain your confusion a bit more - I'm not
> entirely sure what
> > you're asking, and it's very hard to answer questions when you don't
> > know the actual question.
> >
> > Also, it's much better if you explain a little bit about what you're
> > trying to achieve (I've previously used the example of
> someone having a
> > puncture, going to ask the mechanic how to loosen a wheel-nut, then
> > going to ask how to jack up the car, then asking how to tighten the
> > wheel-nut, when the actual problem is a punctured tyre, and
> the "right"
> > question to ask a mechanic is "How do I replace my
> punctured tyre with
> > the spare wheel?").
> >
> > Asking the overall question you're trying to solve will
> give you a more
> > complete answer to what you're trying to do, rather than a detailed
> > answer on the point where you're at (and that may actually
> not help your
> > overall problem at all).
> >
> > --
> > Mats
> >
> >> could you help me
> >>
> >> Thanks in advance
> >>
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@lists.xensource.com
> >> http://lists.xensource.com/xen-devel
> >>
> >>
> >>
> >>
> >
> >
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xensource.com
> > http://lists.xensource.com/xen-devel
> >
> >
> >
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: question about the guestOS boot
2007-03-09 10:43 ` Petersson, Mats
@ 2007-03-09 12:09 ` tgh
2007-03-09 12:17 ` Petersson, Mats
2007-03-10 19:13 ` Mark Williamson
1 sibling, 1 reply; 11+ messages in thread
From: tgh @ 2007-03-09 12:09 UTC (permalink / raw)
To: Petersson, Mats; +Cc: xen-devel
Thank you for your reply
And dom0 xc_linux_build() function play a bootloader role in booting VM
,is it right?
or xc_linux_build() does only a part of bootloader's role and guestOS
does the rest of bootloader's role?
or something else?
I am not sure about it
could you help me
Thanks in advance
Petersson, Mats 写道:
>
>
>
>> -----Original Message-----
>> From: xen-devel-bounces@lists.xensource.com
>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
>> Sent: 09 March 2007 10:13
>> To: Petersson, Mats
>> Cc: xen-devel
>> Subject: Re: [Xen-devel] question about the guestOS boot
>>
>> Thank you for your reply and guide
>> I try to understand how does the xen provide a virtual platform for
>> guestOS to run
>> dom0 provides hardware abstract struct as well as software struct for
>> guestOS
>>
>> and when dom0 boots a vm ,it does prepare the vm
>> vcpu_guest_context for
>> guestOS to run
>> so when VM starts ( the same as our PC resets) ,its vcpu
>> isnot an empty
>> context like the regular ones without virtualization ,so it doesnot
>> start from the regular point or function or firmware
>>
>
> Ehm, ok, lets debunk the first point, which is that the processor is "CPU is empty" when the processor comes out of reset. That is not at all true - yes, most registers are zero, but they still have a DEFINED value out of reset, which may or may not be zero.
>
> But more to the point of "booting" a virtual machine. Of course, we have to NOT reset the processor to boot a virtual machine, as that would loose the original Xen + Dom0 that is already loaded. So Xen has to perform the load/initialize function.
>
> But this is no different from what is done in grub or whatever boot-loader you use. It loads the code into memory and sets up some basic start-values in the registers, then jumps to a starting point somewhere.
>
> In the case of a Xenified kernel, it's at the beginning of the "text" segment, that is, the label _start. The rIP of the VCPU is set to point to this address, and the other registers are set to some sensible values (such as a pointer to any kernel arguments and perhaps some environmental values in other registers that make sense - I haven't looked very closely at it).
>
> There is a difference in Xen-linux start and a regular linux start, and that is that Xen-linux starts in 32-bit protected mode (but Paging is not yet enabled), whereas the regular Linux starts with real-mode (16-bit mode), and does a few instructions before it gets into 32-bit mode.
>
>
>
>> then I do not know where does the guestOS start with in the code
>> could you told me where or which function does the guestOS
>> start with ?
>>
>
> As above. The actual code that the Xen kernel starts at is in .../linux-<ver>-xen/arch/<mach>/kernel/head-xen.S
>
> --
> Mats
>
>> Thanks in advance
>>
>>
>>
>>
>> Petersson, Mats 写道:
>>
>>>
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: xen-devel-bounces@lists.xensource.com
>>>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
>>>> Sent: 09 March 2007 08:17
>>>> To: xen-devel
>>>> Subject: [Xen-devel] question about the guestOS boot
>>>>
>>>> hi
>>>> I try to understand the code about vm create
>>>> and now I am confused about which code does the guestOS start
>>>> with to run ?
>>>>
>>>> xen domain0 uses the function xc_domain_creat() and
>>>> xc_linux_build() to
>>>> prepare the necessary struct such as vcpu_guest_context and
>>>> other things
>>>> for vm guestOS to bootup , in the xc_linux_build(),the
>>>>
>> initrd is also
>>
>>>> loaded in,is it right?
>>>> then guestOS does not run the regular bootloader ,is it right?
>>>>
>>>>
>>> That is correct.
>>>
>>>
>>>> then I am confused about which function or which lines of the
>>>> code does
>>>> the guestOS start with ?
>>>>
>>>>
>>> Can you explain your confusion a bit more - I'm not
>>>
>> entirely sure what
>>
>>> you're asking, and it's very hard to answer questions when you don't
>>> know the actual question.
>>>
>>> Also, it's much better if you explain a little bit about what you're
>>> trying to achieve (I've previously used the example of
>>>
>> someone having a
>>
>>> puncture, going to ask the mechanic how to loosen a wheel-nut, then
>>> going to ask how to jack up the car, then asking how to tighten the
>>> wheel-nut, when the actual problem is a punctured tyre, and
>>>
>> the "right"
>>
>>> question to ask a mechanic is "How do I replace my
>>>
>> punctured tyre with
>>
>>> the spare wheel?").
>>>
>>> Asking the overall question you're trying to solve will
>>>
>> give you a more
>>
>>> complete answer to what you're trying to do, rather than a detailed
>>> answer on the point where you're at (and that may actually
>>>
>> not help your
>>
>>> overall problem at all).
>>>
>>> --
>>> Mats
>>>
>>>
>>>> could you help me
>>>>
>>>> Thanks in advance
>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-devel
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>>
>>>
>>>
>>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>>
>>
>>
>>
>
>
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: question about the guestOS boot
2007-03-09 12:09 ` tgh
@ 2007-03-09 12:17 ` Petersson, Mats
2007-03-09 12:34 ` tgh
0 siblings, 1 reply; 11+ messages in thread
From: Petersson, Mats @ 2007-03-09 12:17 UTC (permalink / raw)
To: tgh; +Cc: xen-devel
> -----Original Message-----
> From: tgh [mailto:tianguanhua@ncic.ac.cn]
> Sent: 09 March 2007 12:10
> To: Petersson, Mats
> Cc: xen-devel
> Subject: Re: [Xen-devel] question about the guestOS boot
>
> Thank you for your reply
>
> And dom0 xc_linux_build() function play a bootloader role in
> booting VM
> ,is it right?
Yes, it's responsible for loading and setting up initial environment to
be able to start the kernel.
The actual load is done by xc_dom_kernel_file(), which in turn uses
xc_dom_malloc_filemap().
--
Mats
[snip]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: question about the guestOS boot
2007-03-09 12:17 ` Petersson, Mats
@ 2007-03-09 12:34 ` tgh
2007-03-09 12:40 ` Petersson, Mats
0 siblings, 1 reply; 11+ messages in thread
From: tgh @ 2007-03-09 12:34 UTC (permalink / raw)
To: Petersson, Mats; +Cc: xen-devel
Thank you for your reply
and" In the case of a Xenified kernel, it's at the beginning of the
"text" segment, that is, the label _start. The rIP of the VCPU is set to
point to this address "
I do not find rIP of the vcpu ,are you sure it is
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: question about the guestOS boot
2007-03-09 12:34 ` tgh
@ 2007-03-09 12:40 ` Petersson, Mats
2007-03-09 12:52 ` tgh
0 siblings, 1 reply; 11+ messages in thread
From: Petersson, Mats @ 2007-03-09 12:40 UTC (permalink / raw)
To: tgh; +Cc: xen-devel
> -----Original Message-----
> From: tgh [mailto:tianguanhua@ncic.ac.cn]
> Sent: 09 March 2007 12:35
> To: Petersson, Mats
> Cc: xen-devel
> Subject: Re: [Xen-devel] question about the guestOS boot
>
> Thank you for your reply
>
> and" In the case of a Xenified kernel, it's at the beginning of the
> "text" segment, that is, the label _start. The rIP of the
> VCPU is set to
> point to this address "
> I do not find rIP of the vcpu ,are you sure it is
The name rIP is a short for for "RIP or EIP", and there is an "eip" in
the cpu_user_regs, which is part of the vcpu_struct.
--
Mats
>
>
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: question about the guestOS boot
2007-03-09 12:40 ` Petersson, Mats
@ 2007-03-09 12:52 ` tgh
0 siblings, 0 replies; 11+ messages in thread
From: tgh @ 2007-03-09 12:52 UTC (permalink / raw)
To: Petersson, Mats; +Cc: xen-devel
Thank you for your patient and detail reply
Thank you
Petersson, Mats 写道:
>> -----Original Message-----
>> From: tgh [mailto:tianguanhua@ncic.ac.cn]
>> Sent: 09 March 2007 12:35
>> To: Petersson, Mats
>> Cc: xen-devel
>> Subject: Re: [Xen-devel] question about the guestOS boot
>>
>> Thank you for your reply
>>
>> and" In the case of a Xenified kernel, it's at the beginning of the
>> "text" segment, that is, the label _start. The rIP of the
>> VCPU is set to
>> point to this address "
>> I do not find rIP of the vcpu ,are you sure it is
>>
>
> The name rIP is a short for for "RIP or EIP", and there is an "eip" in
> the cpu_user_regs, which is part of the vcpu_struct.
>
> --
> Mats
>
>>
>>
>>
>>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: question about the guestOS boot
2007-03-09 10:43 ` Petersson, Mats
2007-03-09 12:09 ` tgh
@ 2007-03-10 19:13 ` Mark Williamson
1 sibling, 0 replies; 11+ messages in thread
From: Mark Williamson @ 2007-03-10 19:13 UTC (permalink / raw)
To: xen-devel; +Cc: Petersson, Mats, tgh
> There is a difference in Xen-linux start and a regular linux start, and
> that is that Xen-linux starts in 32-bit protected mode (but Paging is not
> yet enabled), whereas the regular Linux starts with real-mode (16-bit
> mode), and does a few instructions before it gets into 32-bit mode.
AFAIK paging is enabled for a Xen paravirtualised guest; there is a set of
bootstrap pagetables put in place by the domain builder, which map enough
memory to get the domain started.
Cheers,
Mark
> > then I do not know where does the guestOS start with in the code
> > could you told me where or which function does the guestOS
> > start with ?
>
> As above. The actual code that the Xen kernel starts at is in
> .../linux-<ver>-xen/arch/<mach>/kernel/head-xen.S
>
> --
> Mats
>
> > Thanks in advance
> >
> > Petersson, Mats 写道:
> > >> -----Original Message-----
> > >> From: xen-devel-bounces@lists.xensource.com
> > >> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of tgh
> > >> Sent: 09 March 2007 08:17
> > >> To: xen-devel
> > >> Subject: [Xen-devel] question about the guestOS boot
> > >>
> > >> hi
> > >> I try to understand the code about vm create
> > >> and now I am confused about which code does the guestOS start
> > >> with to run ?
> > >>
> > >> xen domain0 uses the function xc_domain_creat() and
> > >> xc_linux_build() to
> > >> prepare the necessary struct such as vcpu_guest_context and
> > >> other things
> > >> for vm guestOS to bootup , in the xc_linux_build(),the
> >
> > initrd is also
> >
> > >> loaded in,is it right?
> > >> then guestOS does not run the regular bootloader ,is it right?
> > >
> > > That is correct.
> > >
> > >> then I am confused about which function or which lines of the
> > >> code does
> > >> the guestOS start with ?
> > >
> > > Can you explain your confusion a bit more - I'm not
> >
> > entirely sure what
> >
> > > you're asking, and it's very hard to answer questions when you don't
> > > know the actual question.
> > >
> > > Also, it's much better if you explain a little bit about what you're
> > > trying to achieve (I've previously used the example of
> >
> > someone having a
> >
> > > puncture, going to ask the mechanic how to loosen a wheel-nut, then
> > > going to ask how to jack up the car, then asking how to tighten the
> > > wheel-nut, when the actual problem is a punctured tyre, and
> >
> > the "right"
> >
> > > question to ask a mechanic is "How do I replace my
> >
> > punctured tyre with
> >
> > > the spare wheel?").
> > >
> > > Asking the overall question you're trying to solve will
> >
> > give you a more
> >
> > > complete answer to what you're trying to do, rather than a detailed
> > > answer on the point where you're at (and that may actually
> >
> > not help your
> >
> > > overall problem at all).
> > >
> > > --
> > > Mats
> > >
> > >> could you help me
> > >>
> > >> Thanks in advance
> > >>
> > >>
> > >> _______________________________________________
> > >> Xen-devel mailing list
> > >> Xen-devel@lists.xensource.com
> > >> http://lists.xensource.com/xen-devel
> > >
> > > _______________________________________________
> > > Xen-devel mailing list
> > > Xen-devel@lists.xensource.com
> > > http://lists.xensource.com/xen-devel
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xensource.com
> > http://lists.xensource.com/xen-devel
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
--
Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-03-10 19:13 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-08 16:23 [PATCH] [TPM] Remove an unused data structure Stefan Berger
2007-03-09 8:16 ` question about the guestOS boot tgh
2007-03-09 9:45 ` Petersson, Mats
2007-03-09 10:13 ` tgh
2007-03-09 10:43 ` Petersson, Mats
2007-03-09 12:09 ` tgh
2007-03-09 12:17 ` Petersson, Mats
2007-03-09 12:34 ` tgh
2007-03-09 12:40 ` Petersson, Mats
2007-03-09 12:52 ` tgh
2007-03-10 19:13 ` 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.