Thread (7 messages) 7 messages, 3 authors, 2012-12-02

Re: [memcg:since-3.6 341/499] drivers/virtio/virtio_balloon.c:157:2-8: preceding lock on line 136

From: Michal Hocko <hidden>
Date: 2012-11-30 18:15:03

On Fri 30-11-12 10:00:15, Wu Fengguang wrote:
On Thu, Nov 29, 2012 at 04:46:16PM -0800, Andrew Morton wrote:
quoted
On Fri, 30 Nov 2012 08:28:48 +0800
Fengguang Wu [off-list ref] wrote:
quoted
Hi Rafael,

[Julia and me think that this coccinelle warning is worth reporting.]

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-3.6
head:   422a0f651b5cefa1b6b3ede2e1c9e540a24a6e01
commit: 5f1da4063294480b3fabcee554f976565dec54b5 [341/499] virtio_balloon: introduce migration primitives to balloon pages

+ drivers/virtio/virtio_balloon.c:157:2-8: preceding lock on line 136

vim +157 drivers/virtio/virtio_balloon.c

6b35e407 Rusty Russell      2008-02-04  130  {
5f1da406 Rafael Aquini      2012-11-09  131  	struct balloon_dev_info *vb_dev_info = vb->vb_dev_info;
5f1da406 Rafael Aquini      2012-11-09  132  
6b35e407 Rusty Russell      2008-02-04  133  	/* We can only do one array worth at a time. */
6b35e407 Rusty Russell      2008-02-04  134  	num = min(num, ARRAY_SIZE(vb->pfns));
6b35e407 Rusty Russell      2008-02-04  135  
5f1da406 Rafael Aquini      2012-11-09 @136  	mutex_lock(&vb->balloon_lock);
3ccc9372 Michael S. Tsirkin 2012-04-12  137  	for (vb->num_pfns = 0; vb->num_pfns < num;
3ccc9372 Michael S. Tsirkin 2012-04-12  138  	     vb->num_pfns += VIRTIO_BALLOON_PAGES_PER_PAGE) {
5f1da406 Rafael Aquini      2012-11-09  139  		struct page *page = balloon_page_enqueue(vb_dev_info);
5f1da406 Rafael Aquini      2012-11-09  140  
6b35e407 Rusty Russell      2008-02-04  141  		if (!page) {
6b35e407 Rusty Russell      2008-02-04  142  			if (printk_ratelimit())
6b35e407 Rusty Russell      2008-02-04  143  				dev_printk(KERN_INFO, &vb->vdev->dev,
6b35e407 Rusty Russell      2008-02-04  144  					   "Out of puff! Can't get %zu pages\n",
5f1da406 Rafael Aquini      2012-11-09  145  					   VIRTIO_BALLOON_PAGES_PER_PAGE);
6b35e407 Rusty Russell      2008-02-04  146  			/* Sleep for at least 1/5 of a second before retry. */
6b35e407 Rusty Russell      2008-02-04  147  			msleep(200);
6b35e407 Rusty Russell      2008-02-04  148  			break;
6b35e407 Rusty Russell      2008-02-04  149  		}
3ccc9372 Michael S. Tsirkin 2012-04-12  150  		set_page_pfns(vb->pfns + vb->num_pfns, page);
3ccc9372 Michael S. Tsirkin 2012-04-12  151  		vb->num_pages += VIRTIO_BALLOON_PAGES_PER_PAGE;
6b35e407 Rusty Russell      2008-02-04  152  		totalram_pages--;
6b35e407 Rusty Russell      2008-02-04  153  	}
6b35e407 Rusty Russell      2008-02-04  154  
6b35e407 Rusty Russell      2008-02-04  155  	/* Didn't get any?  Oh well. */
6b35e407 Rusty Russell      2008-02-04  156  	if (vb->num_pfns == 0)
6b35e407 Rusty Russell      2008-02-04 @157  		return;
6b35e407 Rusty Russell      2008-02-04  158  
6b35e407 Rusty Russell      2008-02-04  159  	tell_host(vb, vb->inflate_vq);
5f1da406 Rafael Aquini      2012-11-09  160  	mutex_unlock(&vb->balloon_lock);
This bug was fixed by

            virtio_balloon-introduce-migration-primitives-to-balloon-pages.patch
this one -> virtio_balloon-introduce-migration-primitives-to-balloon-pages-fix.patch
            virtio_balloon-introduce-migration-primitives-to-balloon-pages-fix-fix.patch
            virtio_balloon-introduce-migration-primitives-to-balloon-pages-fix-fix-fix.patch
Michal: your since-3.6 branch somehow missed that followup fix...
Hmm strange, I can see all of them in my tree.
72d9876194be9e6f0600ca796b6689a77fce28b7
f920c4f67b892a6b41054c5441ab0d481489c6c9
63db42f4243be26efffc32806990349235619bad

merged in mmotm-2012-11-14-17-40

and my mis-merge follow-up
83bb61967444e22100f7c6e2a5f79ffa85b9e981

merged in mmotm-2012-11-26-17-32
All of them should be 

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help