WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] RE: general protection fault: 0000 [#1]

To: Jan Beulich <jbeulich@xxxxxxxxxx>, john bryant <bryant.johan@xxxxxxxxx>
Subject: RE: [Xen-devel] RE: general protection fault: 0000 [#1]
From: "Santos, Jose Renato G" <joserenato.santos@xxxxxx>
Date: Thu, 6 Mar 2008 17:25:37 +0000
Accept-language: en-US
Acceptlanguage: en-US
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "xen-users@xxxxxxxxxxxxxxxxxxx" <xen-users@xxxxxxxxxxxxxxxxxxx>, "oprofile-list@xxxxxxxxxxxxxxxxxxxxx" <oprofile-list@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 06 Mar 2008 09:26:48 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <47CFBC78.76E4.0078.0@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <b743f6510803050813v19fc3703l4391457eda99717b@xxxxxxxxxxxxxx> <C7B67062D31B9E459128006BAAD0DC3D0753E5C76E@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <47CFBC78.76E4.0078.0@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Ach/Zer1745KRqv/RVmazgZcl/7WrAAR/Q3w
Thread-topic: [Xen-devel] RE: general protection fault: 0000 [#1]

> -----Original Message-----
> From: Jan Beulich [mailto:jbeulich@xxxxxxxxxx]
> Sent: Thursday, March 06, 2008 12:42 AM
> To: john bryant; Santos, Jose Renato G
> Cc: oprofile-list@xxxxxxxxxxxxxxxxxxxxx;
> xen-devel@xxxxxxxxxxxxxxxxxxx; xen-users@xxxxxxxxxxxxxxxxxxx
> Subject: [Xen-devel] RE: general protection fault: 0000 [#1]
>
> Actually, it's not exactly that way - as long as an MSR can
> be read by Xen (i.e. is implemented), guests are permitted to
> read them (see the default case in the rdmsr handling part of
> emulate_privileged_op().
>

  To use performance counters you also have to write MSRs, not
  only read them. I am not familiar with MSR emulation in Xen but
  I think it should not allow guests to arbitrary write to them.
  Anyway, I did not know you could actualy read any MSR in Xen.
  Thanks for pointing this out.

> However, I have a hard time understanding what need profiling
> code would have to access MSR 0x119 (which, according to my
> docs, is PentiumPro/II/III specific).
>

  Most performance counters are model specific, although more recent
  CPUs have now a subset of counters that more general and expected to
  be supported across new models of the same architecture
  (architectural counters)

  Renato


> Jan
>
> >>> "Santos, Jose Renato G" <joserenato.santos@xxxxxx> 05.03.08 19:12
> >>> >>>
> No. In Xen, kernel and modules for PV guests run in ring 1,
> Xen provide virtualization for some MSRs enabling access to
> them from ring 1, but this is not available for performance
> counter MSRs. For OProfile we have a Xen component (xenoprof)
> that acess the performance counters. Oprofile kernel module
> for Xen is modified to  use hypercalls in order to get the
> performance counters programmed instead of accessing MSRs directly.
>
> Regards
>
> Renato
> ________________________________
> From: oprofile-list-bounces@xxxxxxxxxxxxxxxxxxxxx
> [mailto:oprofile-list-bounces@xxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of john bryant
> Sent: Wednesday, March 05, 2008 8:14 AM
> To: xen-users@xxxxxxxxxxxxxxxxxxx;
> xen-devel@xxxxxxxxxxxxxxxxxxx; oprofile-list@xxxxxxxxxxxxxxxxxxxxx
> Subject: general protection fault: 0000 [#1]
>
> hi,
>
> I have written a small kernel module to profile an event in
> xen. When i invoke "rdmsr", I get general protection error.
> As far as i understand, any kernel module is in CPL0, then
> rdmsr should work in kernel module. Any help ?  Below is log
> from syslog
>
> -John
>
> general protection fault: 0000 [#1]
> SMP
> Modules linked in: hello_printk autofs4 hidp l2cap bluetooth
> sunrpc ipv6 binfmt_misc dm_mirror dm_multipath dm_mod video
> thermal processor fan container button battery ac lp nvram
> tsdev evdev i2c_i801 i2c_core piix tg3 r8169 parport_pc
> parport serio_raw serial_core usbhid rtc ahci libata shpchp
> pci_hotplug ext3 jbd ehci_hcd ohci_hcd uhci_hcd usbcore
> CPU:    0
> EIP:    0061:[<ee07e023>]    Not tainted VLI
> EFLAGS: 00010296   (2.6.16.33-xen #337)
> EIP is at hello_init+0x23/0x8d [hello_printk]
> eax: 00000000   ebx: 00000119   ecx: 00000119   edx: ff1bbfb4
> esi: d9de86b0   edi: d9de8400   ebp: d9de86d8   esp: d9eafe1c
> ds: 007b   es: 007b   ss: 0069
> Process insmod (pid: 11521, threadinfo=d9eae000 task=c0713030)
> Stack: <0>ee1df034 ca680746 0000b06e c0135f05 c013d301
> ee1df400 d9de86b0 d9de8400
>        c0137381 ee1df448 c03916c1 ee1df40c 00000000 00000008
> 00000003 00000000
>        ee1df40c ee1df448 ee1df400 00000000 00000000 00000000
> 00000000 00000000 Call Trace:
>  [<c0135f05>] __link_module+0x0/0x1f
>  [<c013d301>] stop_machine_run+0x2e/0x34  [<c0137381>]
> sys_init_module+0x13e/0x1afb  [<c011e45a>] printk+0x0/0x1f
> [<c0162dc1>] do_sync_read+0xc3/0xff  [<c0130e9e>]
> autoremove_wake_function+0x0/0x37  [<c01540e7>]
> do_brk+0x21b/0x220  [<c01c4ca4>]
> _atomic_dec_and_lock+0x40/0x5c  [<c0179452>] dput+0xc3/0x12a
> [<c0163fe5>] __fput+0x137/0x18c  [<c017d1e0>]
> mntput_no_expire+0x13/0x6c  [<c0105289>] syscall_call+0x7/0xb
> Code:  Bad EIP value.
>
>
>

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