[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |