From: Gerald Britton <gbritton@doomcom.org>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.sourceforge.net
Subject: Re: xen and agpgart
Date: Fri, 3 Sep 2004 23:11:35 -0400 [thread overview]
Message-ID: <20040904031135.GA8938@fog.sekrit.org> (raw)
In-Reply-To: <E1C3PhF-0003Eo-00@mta1.cl.cam.ac.uk>
> Hmmmm.... I think the problem is people using virt_to_phys() instead
> of virt_to_bus(). I would have expected the latter to be correct
> really. I'll take a look at uses of ioremap() and ioremap_nocache()
> throughout Linux. It may be there's a simple fix that will work for all
> uses... You could try manually changing the address passed in to
> virt_to_bus() and see if you get fiurther.
Ok. I've gone through and tweaked a little to see if I could make some
more forward progress. I've basically done s/virt_to_page/virt_to_bus/
and have gotten the system to initialize, when X starts though, I run into
another one of those pagetable tweaking oopses (below). The code which
is executing here is pretty straightforward:
#define map_page_into_agp(page) change_page_attr(page, 1, PAGE_KERNEL_NOCACHE)
void *agp_generic_alloc_page(void)
{
struct page * page;
page = alloc_page(GFP_KERNEL);
if (page == NULL)
return NULL;
map_page_into_agp(page);
get_page(page);
SetPageLocked(page);
atomic_inc(&agp_bridge->current_memory_agp);
return page_address(page);
}
With the code blowing up inside the change_page_attr().
Oops detail below.
-- Gerald
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 855PM Chipset.
agpgart: Maximum main memory to use for agp memory: 440M
agpgart: AGP aperture is 256M @ 0xd0000000
[drm] Initialized radeon 1.11.0 20020828 on minor 0:
ioperm not fully supported - set iopl to 3
ioperm not fully supported - ignore resource release
ioperm not fully supported - ignore resource release
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 1x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 1x mode
Unable to handle kernel paging request at virtual address c0102d64
printing eip:
c0117ff8
*pde = ma 0308b067 pa 0048b067
*pte = ma 02c02061 pa 00002061
[<c01181c2>] __change_page_attr+0x14e/0x21e
[<c011830c>] change_page_attr+0x7a/0x8f
[<e110f58e>] agp_generic_alloc_page+0x3c/0x65 [agpgart]
[<e110e7e7>] agp_allocate_memory+0x72/0xd2 [agpgart]
[<e1179a45>] radeon_agp_allocate_memory+0x22/0x2a [radeon]
[<e11795e3>] radeon_agp_alloc+0xb9/0x1a2 [radeon]
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<e117dc49>] radeon_ioctl+0xc9/0x13f [radeon]
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<e117db80>] radeon_ioctl+0x0/0x13f [radeon]
[<c016366f>] sys_ioctl+0xf7/0x24c
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<c010d2d3>] syscall_call+0x7/0xb
[<c0106434>] inflate_dynamic+0x428/0x5f5
Oops: 0003 [#1]
PREEMPT
Modules linked in: radeon intel_agp agpgart ds yenta_socket pcmcia_core ip_tables vfat fat ehci_hcd uhci_hcd
CPU: 0
EIP: 0061:[<c0117ff8>] Not tainted
EFLAGS: 00013202 (2.6.8.1-xen0)
EIP is at set_pmd_pte+0xe/0x8a
eax: c0102d64 ebx: 190000e3 ecx: d66c0000 edx: d66c0000
esi: c05e4b00 edi: 191c0063 ebp: c1109c80 esp: d3565eb0
ds: 0069 es: 0069 ss: 0069
Process X (pid: 2354, threadinfo=d3564000 task=df8091e0)
Stack: c0102d64 c05e4b00 c01181c2 c0102d64 d66c0000 190000e3 d66c0000 c13cb800
00000000 00000000 00000000 c011830c c13cb800 00000073 c13cb800 00000000
00000800 00000000 e110f58e c13cb800 00000001 00000073 e00f5500 e110e7e7
Call Trace:
[<c01181c2>] __change_page_attr+0x14e/0x21e
[<c011830c>] change_page_attr+0x7a/0x8f
[<e110f58e>] agp_generic_alloc_page+0x3c/0x65 [agpgart]
[<e110e7e7>] agp_allocate_memory+0x72/0xd2 [agpgart]
[<e1179a45>] radeon_agp_allocate_memory+0x22/0x2a [radeon]
[<e11795e3>] radeon_agp_alloc+0xb9/0x1a2 [radeon]
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<e117dc49>] radeon_ioctl+0xc9/0x13f [radeon]
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<e117db80>] radeon_ioctl+0x0/0x13f [radeon]
[<c016366f>] sys_ioctl+0xf7/0x24c
[<c0106434>] inflate_dynamic+0x428/0x5f5
[<c010d2d3>] syscall_call+0x7/0xb
[<c0106434>] inflate_dynamic+0x428/0x5f5
Code: 89 18 a1 40 87 3f c0 0f b6 70 01 c6 40 01 01 b8 00 e0 ff ff
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
next prev parent reply other threads:[~2004-09-04 3:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-04 0:37 xen and agpgart Gerald Britton
2004-09-04 1:11 ` Keir Fraser
2004-09-04 1:19 ` Gerald Britton
2004-09-04 1:50 ` Keir Fraser
2004-09-04 3:11 ` Gerald Britton [this message]
2004-09-04 3:26 ` Keir Fraser
2004-09-04 4:25 ` Gerald Britton
2004-09-04 4:47 ` Keir Fraser
2004-09-04 5:32 ` Gerald Britton
2004-09-04 8:31 ` Christian Limpach
2004-09-04 18:25 ` Gerald Britton
2004-09-04 20:08 ` Keir Fraser
2004-09-04 20:36 ` Gerald Britton
2004-09-05 5:26 ` Keir Fraser
2004-09-05 18:01 ` Gerald Britton
2004-09-05 19:08 ` [Filtered!] " Keir Fraser
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=20040904031135.GA8938@fog.sekrit.org \
--to=gbritton@doomcom.org \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=xen-devel@lists.sourceforge.net \
/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.