From: Guillaume Robin <robingu@cc-parthenay.fr>
To: xen-devel@lists.xensource.com
Subject: Receiving NMI, when writing on mmaped PCI
Date: Thu, 5 Mar 2009 06:16:39 -0800 (PST) [thread overview]
Message-ID: <22352457.post@talk.nabble.com> (raw)
Hi,
I'm using xen 3.3.1 and running a 2.6.18.8-xen Dom0 (compiled from xen.org).
My hardware is a HP Dc7800 with VT and VT-D activated.
I assigned a acquisition card (NI6023E) to a HVM guest from port 07:09.0
On Dom0 lspci -v give me :
#07:09.0 Class ff00: National Instruments PCI-6023E
# Flags: bus master, medium devsel, latency 32, IRQ 16
# Memory at f0200000 (32-bit, non-prefetchable) [size=4K]
# Memory at f0201000 (32-bit, non-prefetchable) [size=4K]
When I load my VM I get these debug messages so I think memory mapping is OK
for this card.
(from f0200000 on Dom0 to f3001000 on Dom1 and from f0201000 on Dom0 to
f3002000 on Dom1)
#(XEN) [VT-D]iommu.c:1263: domain_context_mapping:PCI: bdf = 7:9.0
#(XEN) [VT-D]iommu.c:1278:d0 domain_context_mapping:map: bdf = 7:9.0 ->
0:1e.0
#(XEN) [VT-D]io.c:140: VT-d irq bind: m_irq = 10 device = 6 intx = 0 //
device 6 on HVM is my card
...
#(XEN) HVM1: pci dev 06:0 bar 10 size 00001000: f3001000
#(XEN) domctl.c:776:d0 memory_map:add: gfn=f3001 mfn=f0200 nr_mfns=1
#(XEN) HVM1: pci dev 06:0 bar 14 size 00001000: f3002000
#(XEN) domctl.c:776:d0 memory_map:add: gfn=f3002 mfn=f0201 nr_mfns=1
I tried some test programs witch all resulted in NMI error on Dom0, so i
tried a simple test to check this mapping.
When I try to write on Bar0 from this card no error appear, but if I write
on Bar1 I get NMI errors.
test program (on HVM):
-------------------------------------------
...
printf("memory mapping bar0 : 0x%X, and 1 : 0x%X...\n", physicalBar0,
physicalBar1); // physicalBar0 = 0xF3001000 and physicalBar1=0xF3002000
mem0 = mmap (NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd,
physicalBar0);
mem1 = mmap (NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd,
physicalBar1);
printf("Bar0 mapped to : 0x%X, Bar1 to : 0x%X \n", mem0, mem1);
// Ex : Bar0 mapped to : 0x14CDB000, Bar1 to : 0x14CDC000 (these address
doesn't realy matter)
if ( MAP_FAILED == mem0 || MAP_FAILED == mem1)
{
close (fd);
printf("map failed \n");
return NULL;
}
printf("testing write on mem0\n");
sleep(1); // Sleep to give time to printf before NMI appear on Dom0 (using
SSH from dom0 to guest to see both output synchronously)
int* titi=(int*)mem0;
*titi=0x1; // Look to work
printf("testing write on mem1\n");
sleep(1);
titi=(int*)mem1;
*titi=0x1; // ==> receiving a NMI on Dom0 while executing this line
...
-------------------------------------------
NMI message :
#Mar 2 14:53:38 XenVT kernel: Uhhuh. NMI received. Dazed and confused, but
trying to continue
#Mar 2 14:53:38 XenVT kernel: You probably have a hardware problem with
your RAM chips
Why this code working on simple kernel (tested on 2.6.18-amd64), can't work
in my HVM with this card assigned ?
btw a message in xm dmesg look strange :
(XEN) [VT-D]iommu.c:1736: Queued Invalidation hardware not found
(XEN) [VT-D]iommu.c:1745: Interrupt Remapping hardware not found
Could this be linked ?
Is there a problem in xen with multiple bar remapping ?
Thank you for your help.
--
View this message in context: http://www.nabble.com/Receiving-NMI%2C-when-writing-on-mmaped-PCI-tp22352457p22352457.html
Sent from the Xen - Dev mailing list archive at Nabble.com.
next reply other threads:[~2009-03-05 14:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-05 14:16 Guillaume Robin [this message]
2009-03-10 16:32 ` Receiving NMI, when writing on mmaped PCI Guillaume Robin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=22352457.post@talk.nabble.com \
--to=robingu@cc-parthenay.fr \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.