From: Matthew Fioravante Subject: Re: [PATCH mini-os enhancements for vtpm 2/8] add posix io to blkfront Date: Fri, 05 Oct 2012 14:02:06 -0400 Message-ID: <506F209E.2040902@jhuapl.edu> References: <50579C5F.5040004@jhuapl.edu> <20120917224619.GO5110@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6077436773460114346==" Return-path: In-Reply-To: <20120917224619.GO5110@type.youpi.perso.aquilenet.fr> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Samuel Thibault , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a cryptographically signed message in MIME format. --===============6077436773460114346== Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms020907020505030200070201" This is a cryptographically signed message in MIME format. --------------ms020907020505030200070201 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 09/17/2012 06:46 PM, Samuel Thibault wrote: > Matthew Fioravante, le Mon 17 Sep 2012 17:55:43 -0400, a =E9crit : >> + /* Read mode checks */ >> + else >> + { >> + /*If the requested read is bigger than the disk, just >> + * read as much as we can until the end */ >> + if(offset + count > disksize) { >> + count =3D offset >=3D disksize ? 0 : disksize - offset; >> + } >> + } > Perhaps return 0 here already instead of just setting count to 0? I agree > >> + >> + /* Setup aiocb block object */ >> + aiocb.aio_dev =3D dev; >> + aiocb.aio_nbytes =3D blocksize; >> + aiocb.aio_offset =3D blknum * blocksize; >> + aiocb.aio_cb =3D NULL; >> + aiocb.data =3D NULL; >> + >> + /* If our buffer is unaligned or its aligned but we will need to r= w >> a partial block >> + * then a copy will have to be done */ >> + if(!alignedbuf || blkoff !=3D 0 || count % blocksize !=3D 0) { >> + copybuf =3D _xmalloc(blocksize, dev->info.sector_size); >> + } >> + >> + rc =3D count; >> + while(count > 0) { >> + /* determine how many bytes to read/write from/to the current >> block buffer */ >> + bytes =3D count > (blocksize - blkoff) ? blocksize - blkoff : c= ount; > Mmm. Optimizing the non-aligned case would make the code > tricky, but shouldn't optimizing the aligned case at least > a little bit not too hard? i.e. set bytes to max(count, > BLKIF_MAX_SEGMENTS_PER_REQUEST*PAGE_SIZE); in the optimized case? That'= d > get much better 44KiB transfers instead of one sector at a time. > > Ideally we should even push a series of aio requests, but that's a lot > less easy since you need to know how many requests you can afford. See latest v2 patch > Apart from that, > > Acked-by: Samuel Thibault --------------ms020907020505030200070201 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIDyjCC A8YwggMvoAMCAQICBD/xyf0wDQYJKoZIhvcNAQEFBQAwLzELMAkGA1UEBhMCVVMxDzANBgNV BAoTBkpIVUFQTDEPMA0GA1UECxMGQklTRENBMB4XDTEwMDYxMTE4MjIwNloXDTEzMDYxMTE4 NTIwNlowZjELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkpIVUFQTDEPMA0GA1UECxMGUGVvcGxl MTUwFgYDVQQLEw9WUE5Hcm91cC1CSVNEQ0EwGwYDVQQDExRNYXR0aGV3IEUgRmlvcmF2YW50 ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnpbwVSP6o1Nb5lcW7dd3yTo9iBJdi7qz 4nANOMFPK7JOy5npKN1iiousl28U/scUJES55gPwAWYJK3uVyQAsA4adgDKi5DoD1UHDQEwp bY7iHLJeq0NPr4BqYNqnCFPbE6HC8zSJrr4qKn+gVUQT39SIFqdiIPJwZL8FYTRQ/zsCAwEA AaOCAbYwggGyMAsGA1UdDwQEAwIHgDArBgNVHRAEJDAigA8yMDEwMDYxMTE4MjIwNlqBDzIw MTIwNzE3MjI1MjA2WjAbBg0rBgEEAbMlCwMBAQEBBAoWCGZpb3JhbWUxMBsGDSsGAQQBsyUL AwEBAQIEChIIMDAxMDQyNjEwWAYJYIZIAYb6ax4BBEsMSVRoZSBwcml2YXRlIGtleSBjb3Jy ZXNwb25kaW5nIHRvIHRoaXMgY2VydGlmaWNhdGUgbWF5IGhhdmUgYmVlbiBleHBvcnRlZC4w KAYDVR0RBCEwH4EdTWF0dGhldy5GaW9yYXZhbnRlQGpodWFwbC5lZHUwUgYDVR0fBEswSTBH oEWgQ6RBMD8xCzAJBgNVBAYTAlVTMQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNVBAsTBkJJU0RD QTEOMAwGA1UEAxMFQ1JMNTYwHwYDVR0jBBgwFoAUCDUpmxH52EU2CyWmF2EJMB1yqeswHQYD VR0OBBYEFO6LYxg6r9wHZ+zdQtBHn1dZ/YTNMAkGA1UdEwQCMAAwGQYJKoZIhvZ9B0EABAww ChsEVjcuMQMCBLAwDQYJKoZIhvcNAQEFBQADgYEAJO9HQh4YNChVLzuZqK5ARJARD8JoujGZ fdo75quvg2jXFQe2sEjvLnxJZgm/pv8fdZakq48CWwjYHKuvIp7sDjTEsQfo+y7SpN/N2NvJ WU5SqfK1VgYtNLRRoGJUB5Q1aZ+Dg95g3kqpyfpUMISJL8IKVLtJVfN4fggFVUYZ9wwxggGr MIIBpwIBATA3MC8xCzAJBgNVBAYTAlVTMQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNVBAsTBkJJ U0RDQQIEP/HJ/TAJBgUrDgMCGgUAoIHLMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJ KoZIhvcNAQkFMQ8XDTEyMTAwNTE4MDIwNlowIwYJKoZIhvcNAQkEMRYEFDAH2yz5joLU0UTm Ppd4sCL4SYzqMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAK BggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYI KoZIhvcNAwICASgwDQYJKoZIhvcNAQEBBQAEgYBzf6qSlqC+7ZktUK2rPiKz2ejydH94RSGS U/Th4APLLx/M6wreMqlqLc0qiWsplo4Pikb32ms45Tu17EHiCUjoDmReZaBudTrGH52wfEsq bNu/5kEPYAZRbpLzFIbtd0ONsdekrIiX2sOtEu19MZq1/3W07Rty9TiH8VI7A1LIlgAAAAAA AA== --------------ms020907020505030200070201-- --===============6077436773460114346== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============6077436773460114346==--