|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] crash in page_list_* macro
Thanks for the replies.
It seems it's not a good idea to put a page into a page_list
when it's already there (among thousands of other list
entries). :-} :-} That resulted in all sorts of
interesting symptoms! Took me all day to track down my
problem, but I think I nailed it.
Dan
> > Is the memory where the list header is stored overloaded and
> > sometimes overwritten for other purposes? Note all pages
> > on my page_list have been gotten via pi=alloc_domheap_pages(0,0,0).
> > Next I use va=page_to_virt(pi), use the page for awhile,
> > use pi=virt_to_page(va) and put it on the page_list, then
> > later when I page_list_remove_head(my_page_list), the
> > list pointers are apparently corrupt.
>
> So long as you allocate anonymous domheap memory, or xenheap
> memory, the
> page_list fields should belong to you. The list structure is
> pretty simple
> and I can't see anything wrong with the macros. An empty list
> is noted by
> NULL head/tail pointers, otherwise point at head/tail pages
> within which
> next/prev pointers are 32-bit MFNs. The head and tail pages
> do not point at
> the page_list_head but instead contain ~0 sentinel next/prev
> link values.
>
> -- Keir
> >>> Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> 12.02.09 04:42 >>>
> >Is the memory where the list header is stored overloaded and
> >sometimes overwritten for other purposes? Note all pages
>
> The list headers are not overloaded in any way. The list
> entries do have
> an overlay union field, used only by shadow code (so your code would
> need to make use of it explicitly, which I doubt).
>
> So according to your description of how you use the page I
> can't see any
> potential for corruption.
>
> Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|