From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GuU1N-00020Z-3b for qemu-devel@nongnu.org; Wed, 13 Dec 2006 08:19:41 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GuU1L-0001yc-2P for qemu-devel@nongnu.org; Wed, 13 Dec 2006 08:19:40 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GuU1K-0001yA-FA for qemu-devel@nongnu.org; Wed, 13 Dec 2006 08:19:38 -0500 Received: from [64.233.184.239] (helo=wr-out-0506.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1GuU1J-0006h5-In for qemu-devel@nongnu.org; Wed, 13 Dec 2006 08:19:38 -0500 Received: by wr-out-0506.google.com with SMTP id 58so53816wri for ; Wed, 13 Dec 2006 05:19:35 -0800 (PST) Message-ID: <56d259a00612130519l2b324966o2f2cd6e5c69beb10@mail.gmail.com> Date: Wed, 13 Dec 2006 13:19:35 +0000 From: "Martin Guy" Sender: martinwguy@gmail.com Subject: Re: [Qemu-devel] Re: NBD server for QEMU images In-Reply-To: <457FE5EE.4000704@qumranet.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_105460_32575088.1166015975364" References: <20061212124803.47702.qmail@web52708.mail.yahoo.com> <457EC621.6000701@codemonkey.ws> <457F0D61.90008@codemonkey.ws> <457FE5EE.4000704@qumranet.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_105460_32575088.1166015975364 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline > - write tons of data to nbd device, data ends up in pagecache > - memory gets low, kswapd wakes up, calls nbd device to actually write > the data > - nbd issues a request, which ends up on the nbd server on the same machine > - the nbd server allocates memory > - memory allocation hangs waiting for kswapd In other words, it can deadlock only if you are swapping to an nbd device that is served by nbd-server running on the same machine and kernel. In the case of a qemu system swapping over nbd to a server on the host machine, it is the guest kernel that waits on the host kernel paging the nbd server in from the host's separate swap space, so no deadlock is possible. Practice bears this out; if you wanna stress-test it, here's a program that creates a low memory condition by saturating the VM. Of course, this has nothing to do with the original patch, which just lets nbd-server interpret qemu image files ;) M ------=_Part_105460_32575088.1166015975364 Content-Type: text/x-csrc; name=thrash.c; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_evnro8pk Content-Disposition: attachment; filename="thrash.c" LyoKICogdGhyYXNoLmMKICoKICogQSBzdGFuZGFsb25lIFVuaXggY29tbWFuZC1saW5lIHByb2dy YW0gdG8KICogbWFrZSB0aGUgbWFjaGluZSB0aHJhc2gsIGllIGdvIGludG8gcGVybWFuZW50IHN3 YXBwaW5nLAogKiBieSB1c2luZyBWTSA+PSBSQU0gc2l6ZSBhbmQgYWNjZXNzaW5nIGFsbCBwYWdl cyByZXBlYXRlZGx5CiAqCiAqIFVzYWdlOiB0aHJhc2ggc2l6ZQogKiB3aGVyZSAic2l6ZSIgaXMg dGhlIG51bWJlciBvZiBtZWdhYnl0ZXMgdG8gdGhyYXNoCiAqIEEgZ29vZCBjaG9pY2UgZm9yIE4g aXMgdGhlIG51bWJlciBvZiBtZWdhYnl0ZXMgb2YgcGh5c2ljYWwgUkFNCiAqIHRoYXQgdGhlIG1h Y2hpbmUgaGFzLgogKgogKiBSZWFzb246CiAqIHRvIGZvcmNlIGEgbWFjaGluZSB0byB1c2UgaXRz IHN3YXAgc3BhY2UsCiAqIHRvIGZsdXNoIGFsbCB1bnVzZWQgcGFnZXMgb3V0IHRvIHN3YXAgYW5k IHNvIGZyZWUgUkFNIGZvciBvdGhlciBwdXJwb3NlcwogKiBvciB0byBzZWUgaG93IGEgc3lzdGVt IGJlaGF2ZXMgdW5kZXIgZXh0cmVtZSBkdXJlc3MuCiAqCiAqIEl0IGN1cnJlbnRseSAqd3JpdGVz KiB0byBhbGwgcGFnZXMsIGJ1dCBjb3VsZCBiZSBtYWRlIHRvIHJlYWQgdGhlbQogKiBhcyBhbiBh bHRlcm5hdGl2ZSwgb3IgYXMgd2VsbC4KICoKICoJTWFydGluIEd1eSwgOSBOb3ZlbWJlciAyMDA2 CiAqLwoKI2luY2x1ZGUgPHN0ZGxpYi5oPgkvKiBmb3IgZXhpdCgpICovCiNpbmNsdWRlIDxzdGRp by5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CS8qIGZvciBzeXN0ZW0gY2FsbHMgKi8KCm1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQp7CglpbnQgbWVnYWJ5dGVzID0gMDsgLyogTUIgb2YgVk0gdG8g dGhyYXNoLCBmcm9tIGNvbW1hbmQtbGluZSBhcmd1bWVudC4KCQkJCSogMCBtZWFucyB1bmluaXRp YWxpc2VkICovCgljaGFyICpidWY7CS8qIEh1Z2UgVk0gYnVmZmVyICovCglpbnRwdHJfdCBidWZz aXplOwkvKiBTaXplIG9mIGJ1ZmZlciBpbiBieXRlcyAqLwoJbG9uZyBwYWdlc2l6ZTsJLyogc2l6 ZSBvZiBWTSBwYWdlICovCglpbnQgaTsJCS8qIGluZGV4IGludG8gYXJndiAqLwoJaW50IHZlcmJv c2UgPSAwOyAvKiBQcmludCBhIGRvdCBmb3IgZXZlcnkgcGFzcyB0aHJvdWdoIFZNPyAqLwoKCXBh Z2VzaXplID0gZ2V0cGFnZXNpemUoKTsKCglmb3IgKGk9MTsgaTxhcmdjOyBpKyspIHsKCQlpZiAo YXJndltpXVswXSA9PSAnLScpIHsKCQkJc3dpdGNoIChhcmd2W2ldWzFdKSB7CgkJCWNhc2UgJ3Yn OiB2ZXJib3NlID0gMTsgYnJlYWs7CgkJCWRlZmF1bHQ6IGdvdG8gdXNhZ2U7CgkJCX0KCQl9IGVs c2UgaWYgKGlzZGlnaXQoYXJndltpXVswXSkpIHsKCQkJbWVnYWJ5dGVzID0gYXRvaShhcmd2W2ld KTsKCQkJLyogU2FuaXR5IGNoZWNrIGNvbWVzIGxhdGVyICovCgkJfSBlbHNlIHsKdXNhZ2U6CQkJ ZnB1dHMoIlVzYWdlOiB0aHJhc2ggWy12XSBOXG4iLCBzdGRlcnIpOwoJCQlmcHV0cygiLXZcdFBy aW50IGEgZG90IGV2ZXJ5IHRpbWUgZm9yIGVhY2ggcGFzcyB0aHJvdWdoIG1lbW9lcnlcbiIsIHN0 ZGVycik7CgkJCWZwdXRzKCJOXHROdW1iZXIgb2YgbWVnYWJ5dGVzIG9mIFZNIHRvIHRocmFzaFxu Iiwgc3RkZXJyKTsKCQkJZXhpdCgxKTsKCQl9Cgl9CgoJLyogU2FuaXR5IGNoZWNrcyAqLwoJaWYg KG1lZ2FieXRlcyA8PSAwKSBnb3RvIHVzYWdlOwoKCWJ1ZnNpemUgPSAobG9uZykgbWVnYWJ5dGVz ICogKGxvbmcpKDEwMjQgKiAxMDI0KTsKCWJ1ZiA9IChjaGFyICopIHNicmsoYnVmc2l6ZSk7Cglp ZiAoYnVmID09IChjaGFyICopLTEpIHsKCQlwZXJyb3IoInRocmFzaDogRmFpbGVkIHRvIGFsbG9j YXRlIFZNIik7CgkJZXhpdCgxKTsKCX0KCgkvKiBXcml0ZSBldmVyeSBwYWdlIHJlcGVhdGVkbHkg Ki8KCWZvciAoOzspIHsKCQljaGFyICpwOwoJCWludCBpOwoKCQlmb3IgKHA9YnVmLCBpPWJ1ZnNp emUvcGFnZXNpemU7IGk+MDsgcCs9cGFnZXNpemUsIGktLSkKCQkJKnA9KGNoYXIpIGk7CgkJaWYg KHZlcmJvc2UpIHsgcHV0Y2hhcignLicpOyBmZmx1c2goc3Rkb3V0KTsgfQoJfQoJLyogTk9UUkVB Q0hFRCAqLwp9Cg== ------=_Part_105460_32575088.1166015975364--