[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel][PV-ops][PATCH] Netback: Fix PV network issue for netback multiple threads patchset



On Mon, 2010-06-21 at 12:14 +0100, Jeremy Fitzhardinge wrote:
> Subject: [PATCH] xen/netback: make sure all the group structures are 
> initialized before starting async code
> 
> Split the netbk group array initialization into two phases: one to do
> simple "can't fail" initialization of lists, timers, locks, etc; and a
> second pass to allocate memory and start the async code.
> 
> This makes sure that all the basic stuff is in place by the time the async 
> code
> is running.

Paul noticed a crash in netback init because...

> @@ -1764,16 +1766,6 @@ static int __init netback_init(void)
>               netbk->netbk_tx_pending_timer.function =
>                       netbk_tx_pending_timeout;
>  
> -             netbk->mmap_pages =
> -                     alloc_empty_pages_and_pagevec(MAX_PENDING_REQS);
> -             if (!netbk->mmap_pages) {
> -                     printk(KERN_ALERT "%s: out of memory\n", __func__);
> -                     del_timer(&netbk->netbk_tx_pending_timer);
> -                     del_timer(&netbk->net_timer);
> -                     rc = -ENOMEM;
> -                     goto failed_init;
> -             }
> -
>               for (i = 0; i < MAX_PENDING_REQS; i++) {
>                       page = netbk->mmap_pages[i];
>                       SetPageForeign(page, netif_page_release);

...this dereference of netbk->mmap_pages[i]...

> @@ -1786,6 +1778,26 @@ static int __init netback_init(void)
[...]
> +             netbk->mmap_pages =
> +                     alloc_empty_pages_and_pagevec(MAX_PENDING_REQS);

... happens before this initialisation of the array.

Ian.



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.