Akio Takebe
2006-Nov-18 09:10 UTC
[Xen-devel] [RFC] Is this process running on which machine?
Hi, all
I''d like to know "Is this process running on which machine?"
For example, a native machien, or dom0, or domU, or HVM..
So I research codes of xen,
then I make the following shell.
(I haven''t confirmed HVM yet because I don''t use VTx machine.)
What do you think about it?
========================================================================#!/bin/bash
if [ -d /sys/hypervisor ] ; then
UUID=$(cat /sys/hypervisor/uuid)
if [ x"$UUID" ==
x"00000000-0000-0000-0000-000000000000" ]; then
echo "this is dom0."
else
echo "this is domU."
fi
else
IS_HVM=$(strings /proc/acpi/dsdt | grep -i xen)
if [ x"IS_HVM" != x ]; then
echo "this is hvm machine"
else
echo "this is native machine"
fi
fi
========================================================================
Best Regards,
Akio Takebe
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Nov-18 13:53 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
On Sat, Nov 18, 2006 at 06:10:57PM +0900, Akio Takebe wrote:> Hi, all > > I''d like to know "Is this process running on which machine?" > For example, a native machien, or dom0, or domU, or HVM.. > > So I research codes of xen, > then I make the following shell. > (I haven''t confirmed HVM yet because I don''t use VTx machine.) > What do you think about it? > > ========================================================================> #!/bin/bash > > if [ -d /sys/hypervisor ] ; then > UUID=$(cat /sys/hypervisor/uuid) > if [ x"$UUID" == x"00000000-0000-0000-0000-000000000000" ]; then > echo "this is dom0." > else > echo "this is domU." > fi > else > IS_HVM=$(strings /proc/acpi/dsdt | grep -i xen) > if [ x"IS_HVM" != x ]; then > echo "this is hvm machine" > else > echo "this is native machine" > fi > fiI wouldn''t rely upon the UUID of domain 0 being all-zeros -- there have been arguments about that in the past. The proper mechanism for doing this is grep -q "control_d" /proc/xen/capabilities This will be true if you are in the "initial control domain" (SIF_INITDOMAIN has been set). Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Akio Takebe
2006-Nov-20 01:57 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
Hi, Ewan and all
Thank you for your comments.
I remake my scripts.
I tested on dom0,domU,HVM(x86),native.
Are there any other comments or suggestions?
================================================================#!/bin/bash
if [ -d /proc/xen ] ; then
if $(grep -q control_d /proc/xen/capabilities); then
echo "this is dom0."
else
echo "this is domU."
fi
else
IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)"
if [ x"${IS_X86HVM}" != x ]; then
echo "this is x86 hvm machine"
else
echo "this is native machine"
fi
fi
================================================================
Best Regards,
Akio Takebe
>On Sat, Nov 18, 2006 at 06:10:57PM +0900, Akio Takebe wrote:
>
>> Hi, all
>>
>> I''d like to know "Is this process running on which
machine?"
>> For example, a native machien, or dom0, or domU, or HVM..
>>
>> So I research codes of xen,
>> then I make the following shell.
>> (I haven''t confirmed HVM yet because I don''t use VTx
machine.)
>> What do you think about it?
>>
>>
========================================================================>>
#!/bin/bash
>>
>> if [ -d /sys/hypervisor ] ; then
>> UUID=$(cat /sys/hypervisor/uuid)
>> if [ x"$UUID" ==
x"00000000-0000-0000-0000-000000000000" ]; then
>> echo "this is dom0."
>> else
>> echo "this is domU."
>> fi
>> else
>> IS_HVM=$(strings /proc/acpi/dsdt | grep -i xen)
>> if [ x"IS_HVM" != x ]; then
>> echo "this is hvm machine"
>> else
>> echo "this is native machine"
>> fi
>> fi
>
>I wouldn''t rely upon the UUID of domain 0 being all-zeros -- there
have
>been arguments about that in the past.
>
>The proper mechanism for doing this is
>
>grep -q "control_d" /proc/xen/capabilities
>
>This will be true if you are in the "initial control domain"
>(SIF_INITDOMAIN has been set).
>
>Ewan.
>
>_______________________________________________
>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
Akio Takebe
2006-Nov-20 03:37 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
Hi, Ewan and all
Using /proc/xen is not good
because unmodified driver create /proc/xen on HVM.
Which is better?
A. chech existing /proc/xen/capabilities
B. check existing /sys/hypervisor?
I feel A is better.
But will xen support privcmd as unmodified driver in the future?
How do you think about it?
Best Regards,
Akio Takebe
>Hi, Ewan and all
>
>Thank you for your comments.
>I remake my scripts.
>
>I tested on dom0,domU,HVM(x86),native.
>Are there any other comments or suggestions?
>
>================================================================>#!/bin/bash
>
>if [ -d /proc/xen ] ; then
> if $(grep -q control_d /proc/xen/capabilities); then
> echo "this is dom0."
> else
> echo "this is domU."
> fi
>else
> IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)"
> if [ x"${IS_X86HVM}" != x ]; then
> echo "this is x86 hvm machine"
> else
> echo "this is native machine"
> fi
>fi
>================================================================>
>Best Regards,
>
>Akio Takebe
>
>>On Sat, Nov 18, 2006 at 06:10:57PM +0900, Akio Takebe wrote:
>>
>>> Hi, all
>>>
>>> I''d like to know "Is this process running on which
machine?"
>>> For example, a native machien, or dom0, or domU, or HVM..
>>>
>>> So I research codes of xen,
>>> then I make the following shell.
>>> (I haven''t confirmed HVM yet because I don''t use
VTx machine.)
>>> What do you think about it?
>>>
>>>
========================================================================>>>
#!/bin/bash
>>>
>>> if [ -d /sys/hypervisor ] ; then
>>> UUID=$(cat /sys/hypervisor/uuid)
>>> if [ x"$UUID" ==
x"00000000-0000-0000-0000-000000000000" ]; then
>>> echo "this is dom0."
>>> else
>>> echo "this is domU."
>>> fi
>>> else
>>> IS_HVM=$(strings /proc/acpi/dsdt | grep -i xen)
>>> if [ x"IS_HVM" != x ]; then
>>> echo "this is hvm machine"
>>> else
>>> echo "this is native machine"
>>> fi
>>> fi
>>
>>I wouldn''t rely upon the UUID of domain 0 being all-zeros --
there have
>>been arguments about that in the past.
>>
>>The proper mechanism for doing this is
>>
>>grep -q "control_d" /proc/xen/capabilities
>>
>>This will be true if you are in the "initial control domain"
>>(SIF_INITDOMAIN has been set).
>>
>>Ewan.
>>
>>_______________________________________________
>>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
Andrew D. Ball
2006-Nov-21 03:03 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
You can use dmidecode on HVM domU''s running Linux. This reads the SMBIOS tables. The system information type (type 1) will tell you that it''s an HVM domU. Peace. Andrew On Mon, 2006-11-20 at 12:37 +0900, Akio Takebe wrote:> Hi, Ewan and all > > Using /proc/xen is not good > because unmodified driver create /proc/xen on HVM. > Which is better? > A. chech existing /proc/xen/capabilities > B. check existing /sys/hypervisor? > > I feel A is better. > But will xen support privcmd as unmodified driver in the future? > How do you think about it? > > Best Regards, > > Akio Takebe > > >Hi, Ewan and all > > > >Thank you for your comments. > >I remake my scripts. > > > >I tested on dom0,domU,HVM(x86),native. > >Are there any other comments or suggestions? > > > >================================================================> >#!/bin/bash > > > >if [ -d /proc/xen ] ; then > > if $(grep -q control_d /proc/xen/capabilities); then > > echo "this is dom0." > > else > > echo "this is domU." > > fi > >else > > IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)" > > if [ x"${IS_X86HVM}" != x ]; then > > echo "this is x86 hvm machine" > > else > > echo "this is native machine" > > fi > >fi > >================================================================> > > >Best Regards, > > > >Akio Takebe > > > >>On Sat, Nov 18, 2006 at 06:10:57PM +0900, Akio Takebe wrote: > >> > >>> Hi, all > >>> > >>> I''d like to know "Is this process running on which machine?" > >>> For example, a native machien, or dom0, or domU, or HVM.. > >>> > >>> So I research codes of xen, > >>> then I make the following shell. > >>> (I haven''t confirmed HVM yet because I don''t use VTx machine.) > >>> What do you think about it? > >>> > >>> ========================================================================> >>> #!/bin/bash > >>> > >>> if [ -d /sys/hypervisor ] ; then > >>> UUID=$(cat /sys/hypervisor/uuid) > >>> if [ x"$UUID" == x"00000000-0000-0000-0000-000000000000" ]; then > >>> echo "this is dom0." > >>> else > >>> echo "this is domU." > >>> fi > >>> else > >>> IS_HVM=$(strings /proc/acpi/dsdt | grep -i xen) > >>> if [ x"IS_HVM" != x ]; then > >>> echo "this is hvm machine" > >>> else > >>> echo "this is native machine" > >>> fi > >>> fi > >> > >>I wouldn''t rely upon the UUID of domain 0 being all-zeros -- there have > >>been arguments about that in the past. > >> > >>The proper mechanism for doing this is > >> > >>grep -q "control_d" /proc/xen/capabilities > >> > >>This will be true if you are in the "initial control domain" > >>(SIF_INITDOMAIN has been set). > >> > >>Ewan. > >> > >>_______________________________________________ > >>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
Akio Takebe
2006-Nov-21 08:52 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
Hi, Andrew Thank you for you comment.>You can use dmidecode on HVM domU''s running Linux. This reads the >SMBIOS tables. The system information type (type 1) will tell you that >it''s an HVM domU.Yes, dmidecode is a good way. The following way is also another good way. lspci | grep "5853:0001" I''ll remake the scripts. I''d like to make a command like "uname". Best Regars, Akio Takebe _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Akio Takebe
2006-Nov-27 04:39 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
Hi,
I remake my scripts.
I found dmidecode sometimes don''t work on HVM domain
and it is not installed on default system of some distribution.
So I use /proc/acpi/dsdt.
Please comments.
==================================================================#!/bin/bash
IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)"
if [ x"${IS_X86HVM}" != x ]; then
echo "this is x86 hvm machine"
elif [ -f /proc/xen/capabilities ] ; then
if $(grep -q control_d /proc/xen/capabilities); then
echo "this is dom0."
else
echo "this is domU."
fi
else
echo "this is native machine"
fi
==================================================================
Best Regards,
Akio Takebe
>Hi, Andrew
>
>Thank you for you comment.
>
>>You can use dmidecode on HVM domU''s running Linux. This reads
the
>>SMBIOS tables. The system information type (type 1) will tell you that
>>it''s an HVM domU.
>Yes, dmidecode is a good way.
>The following way is also another good way.
>lspci | grep "5853:0001"
>
>I''ll remake the scripts.
>I''d like to make a command like "uname".
>
>Best Regars,
>
>Akio Takebe
>
>
>
>_______________________________________________
>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
Akio Takebe
2006-Nov-28 04:00 UTC
Re: [Xen-devel] [RFC] Is this process running on which machine?
Hi,
I remake it again.
I tested native, dom0, domU, domVTx on x86.
If you have comments, please give me.
----------------------------------------------------------
#!/bin/bash
declare -i IS_HVM=0
declare -i IS_PARA=0
check_hvm()
{
IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)"
if [ x"${IS_X86HVM}" != x ]; then
echo "x86hvm"
IS_HVM=1
fi
}
check_para()
{
if $(grep -q control_d /proc/xen/capabilities); then
echo "dom0"
IS_PARA=1
else
echo "domU"
IS_PARA=1
fi
}
#### main ####
if [ -f /proc/acpi/dsdt ]; then
check_hvm
fi
if [ ${IS_HVM} -eq 0 ]; then
if [ -f /proc/xen/capabilities ] ; then
check_para
fi
fi
if [ ${IS_HVM} -eq 0 -a ${IS_PARA} -eq 0 ]; then
echo "native"
fi
----------------------------------------------------------
Best Regards,
Akio Takebe
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel