The intention of the following two patches is making users aware about
the negative file I/O performance impact when using a very low value for 9P client parameter 'msize', which especially is the case if no 'msize' parameter was supplied by the user with a 9P Linux client at all. All it does is logging a performance warning on host side (once) in that case. By setting 'msize' on client side to any value larger than 8192 the performance warning will disappear. See https://wiki.qemu.org/Documentation/9psetup#msize for details. -----BEGIN PGP SIGNATURE----- iQJLBAABCgA1FiEEltjREM96+AhPiFkBNMK1h2Wkc5UFAl9gmWwXHHFlbXVfb3Nz QGNydWRlYnl0ZS5jb20ACgkQNMK1h2Wkc5UbSA//edhciQPI7XX/jfxBd5OaxF28 2/iYY/dEDKcR+cywpXzZsDRvbEo+Sr6xxd0gPV0QnMIVzpUcGwf57L88NS2FcIBm u702t+ynUg/Za78siQ3CTVcIKT/Da5gIhJQzDJ+tjLjJePKGJBKxSVkEH/j5II9+ 9EVIW0SGis7OfRRTiXusxAjeIgGGOBpj8VXy72iaiWw2qig7Nb+ESs84p9DHBjbk 3w3jB8wZS/0q2M3KpBShm20tijW5Evt5xEJfMuxQDKsXfzHOTr8bHgAffVb2kvnD m0F5jEFyRdaInMtpHU6jtIMm9V0+Wny5UEjLnSBPSgB4mgNpnKoGeezCnIH3xZmt vGJSQK+83iBH+eOvEHNOD9MWggHjNZi7tqLDyEcmfE9BFS/FEckxpVsYOHLKsLrJ EBbpcrJGxlgTYIAbLeJ7XPWaidzSw3lrsJzdDSIL9Q2kzsx58iR1O45bJr8i++W0 OyDf5eTUASrZ6pKO74JF3DSwhiN6vsTHQzYDPSsoge+PUUfXVCtVkwXW/vW5csNJ 4Go//BDE5afkuP8doilxDHU4EvXDTiRnzSQn46lMb/n7zbTirIT6NQP8Yre7LS1L j8qOCA8V0aNBA4pZ3Iax9u00E628gbAgYl0rAh8cudIEPXS1MZNNdMv8Vn0XzMZM eEqcRH8aZArQsYY5ATE= =Ha0F -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/cschoenebeck/tags/pull-9p-20200915' into staging The intention of the following two patches is making users aware about the negative file I/O performance impact when using a very low value for 9P client parameter 'msize', which especially is the case if no 'msize' parameter was supplied by the user with a 9P Linux client at all. All it does is logging a performance warning on host side (once) in that case. By setting 'msize' on client side to any value larger than 8192 the performance warning will disappear. See https://wiki.qemu.org/Documentation/9psetup#msize for details. # gpg: Signature made Tue 15 Sep 2020 11:37:32 BST # gpg: using RSA key 96D8D110CF7AF8084F88590134C2B58765A47395 # gpg: issuer "qemu_oss@crudebyte.com" # gpg: Good signature from "Christian Schoenebeck <qemu_oss@crudebyte.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: ECAB 1A45 4014 1413 BA38 4926 30DB 47C3 A012 D5F4 # Subkey fingerprint: 96D8 D110 CF7A F808 4F88 5901 34C2 B587 65A4 7395 * remotes/cschoenebeck/tags/pull-9p-20200915: 9pfs: disable msize warning for synth driver 9pfs: log warning if msize <= 8192 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
8ee612722d
@ -64,6 +64,10 @@ typedef struct ExtendedOps {
|
||||
*/
|
||||
#define V9FS_REMAP_INODES 0x00000200
|
||||
#define V9FS_FORBID_MULTIDEVS 0x00000400
|
||||
/*
|
||||
* Disables certain performance warnings from being logged on host side.
|
||||
*/
|
||||
#define V9FS_NO_PERF_WARN 0x00000800
|
||||
|
||||
#define V9FS_SEC_MASK 0x0000003C
|
||||
|
||||
|
@ -541,6 +541,8 @@ static int synth_init(FsContext *ctx, Error **errp)
|
||||
QLIST_INIT(&synth_root.child);
|
||||
qemu_mutex_init(&synth_mutex);
|
||||
|
||||
ctx->export_flags |= V9FS_NO_PERF_WARN;
|
||||
|
||||
/* Add "." and ".." entries for root */
|
||||
v9fs_add_dir_node(&synth_root, synth_root.attr->mode,
|
||||
"..", synth_root.attr, synth_root.attr->inode);
|
||||
|
@ -1353,6 +1353,15 @@ static void coroutine_fn v9fs_version(void *opaque)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* 8192 is the default msize of Linux clients */
|
||||
if (s->msize <= 8192 && !(s->ctx.export_flags & V9FS_NO_PERF_WARN)) {
|
||||
warn_report_once(
|
||||
"9p: degraded performance: a reasonable high msize should be "
|
||||
"chosen on client/guest side (chosen msize is <= 8192). See "
|
||||
"https://wiki.qemu.org/Documentation/9psetup#msize for details."
|
||||
);
|
||||
}
|
||||
|
||||
marshal:
|
||||
err = pdu_marshal(pdu, offset, "ds", s->msize, &version);
|
||||
if (err < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user