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