[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
- To: "paul@xxxxxxx" <paul@xxxxxxx>, Owen Smith <owen.smith@xxxxxxxxxx>
- From: Martin Harvey <martin.harvey@xxxxxxxxxx>
- Date: Mon, 6 Jun 2022 10:04:07 +0000
- Accept-language: en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7jH58CtQbI3u0/iOWHg8a6cY9dA72xm+1Zcjy37ZUCU=; b=BBFK0Iub1MTe/o5HpYBlb91wcEsW86K+zmBCT7akuncVL21gH/Qv0nhI9+MeEGhkS9GbiLd/Jg6bCof9jEQLahU23bejuXaVBlcMpINO0VCKWD3AtVm22pbkk+NTm1cICaYS/Wx4QUTK8GS7ixdza+hNFPVD0D6ezJ/B+NIfkmqWiY/nh02s9BIw0iJaPBWw0OO1Biy41r39QSrfor+1MQt2EzqKehNChxjmPhcvGjez4V/fYlcV3wdiCwWEkDDsDD3bjEEHDVyagd3U2zhVtbLe8QCP/h8rKlZEn8qUzNS5WrOQDQZHz6Osm0oMFQ+tRLApwxrWUwpihM+Gv1ZrDw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X7hnqrEqgMIkN3/yCKFEzLHbdUJ5YkYeY4Nqb4SS6RvAvmxG72AwY59NogOS1/7b+coMaFfgVhDqlFgqG5zs1YIGFGZxu2uWnbzcjVQlq176aIkxroIgmqjg2I4yeZmsbrYvvNLYgZJgKxNJrsriMdcfybtL20EM6bIddE4CRZiU8p6xbURjAQfc+zXciYwFNUavSrqssOixwrxiQPF0OCP8zAdBrSVDmZicdI4hGJ88DFJLmu2J+39GKEWYkLcDHytJWYOr5sWnQFcBA1W/RycKYjjuhEGBl0BXEbS+Zwk4TXs5HzAGrtpWH4yy6clVZvI/lPYsU0PZTWafLPRQAQ==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Mon, 06 Jun 2022 10:04:30 +0000
- Ironport-data: A9a23:uqmzR6M00nROtnfvrR3HlsFynXyQoLVcMsEvi/4bfWQNrUp3gmFSx mAfDWyGaP+ONGf2fd9+PoW09kwC7ZLXyYViGQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFYMpBsJ00o5wbZn2tMw27BVPivW0 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z8 9NVj6bqEF8TGrDr2+IHc0B3ORxjFPgTkFPHCSDXXc276WTjKiKp79AwSUY8MMsf5/p9BnxI+ boAMjcRYxufhuWwhrWmVu1rgcdlJ87uVG8dkig4kXeFUrB7HtaaHP+iCdxwhV/cguhLFOzCZ sxfaTN1chnRSxZOJk0WGNQ1m+LAanzXLGcH+ArM+fVfD277zjIo6JS8CNDvdtmadepVsFeo/ 0vv1jGsav0dHJnFodafyVq0j/LLtTP2XsQVDrLQ3uFrhhiL2CkfBQMbUXO/oOKlkQiuVtRHM UsW9yEy668o+ySWosLVWhS5pDuIu0AaUt8JSukisljSkOzT/hqTAXUCQnhZcts6ucQqRDssk FiUg9fuAj8pu7qQIZ6AyoqpQfqJEXB9BQc/ieUsF2PpP/GLTFkPsy/y
- Ironport-hdrordr: A9a23:ApoIp6hXPKhAZw9ixX3ohcTxyXBQX3F13DAbv31ZSRFFG/FwyP rCoB1L73XJYWgqM03IwerwQ5VpQRvnhP1ICPoqTM2ftW7dySaVxeBZnMHfKljbdxEWmdQtsp uIH5IeNDS0NykDsS+Y2nj1Lz9D+qjgzEnAv463oBlQpENRGthdBmxCe2Sm+zhNNW177O0CZf +hD6R8xwaISDAyVICWF3MFV+/Mq5ngj5T9eyMLABYh9U2nkS6owKSSKWnX4j4uFxd0hZsy+2 nMlAL0oo+5teug9xPa32jPq7xLhdrazMdZDsDksLlVFtyssHfpWG1SYczBgNkHmpDr1L/sqq iJn/4UBbUx15oWRBDznfKi4Xin7N9k0Q6e9bbRuwqenSW+fkN0NyMJv/MnTjLJr0Unp91yy6 RNwiaQsIdWFwrJmGDn68HPTAwCrDv8nZMOq59ls5Vka/ppVFaRl/1twGpFVJMbWC7q4oEuF+ djSMna+fZNaFufK3TUpHNmztCgVmk6Wk7ueDlIhuWFlzxN2HxpxUoRw8IS2n8G6ZImUpFBo+ DJKL5hmr1CRtIfKah9GOACS82qDXGle2OFDEuCZVD8UK0XMXPErJD6pL0z+eGxYZQNiIA/nZ zQOWkowVLau3iefPFm8Kc7gywlGl/NIwgF4vsul6RRq/n7WKfhNzGFRRQnj9agys9vcPHmZw ==
- List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
- Thread-index: AQHYdnXhM853CaX5dkS4JamzRTB2U607/02AgAYoYaA=
- Thread-topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
-----Original Message-----
From: Durrant, Paul <xadimgnik@xxxxxxxxx>
Sent: 02 June 2022 12:44
To: Owen Smith <owen.smith@xxxxxxxxxx>; Martin Harvey <martin.harvey@xxxxxxxxxx>
Cc: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH v2] Limit the amount of work done for each Receiver DPC
> How does this version look?
Ugggg. Really really no, sorry.
Semantic point 1:
If you look at how it works when both patches are applied, you'll see that
AllFlushed is meant to be kept as a running check as to whether all packets
that could be processed, have been processed at this point. It's not just some
statically determined criteria at the start of the DPC routine as to whether we
will be able to process all the packets in the current DPC.
This is the case when you consider 2/2 when XenNet can abort the processing,
and we re-check the is-list-empty criterion, instead of simply referring to the
"more" variable which had been previously calculated (but is no longer an
accurate indicator of the state of the list).
Bug 2:
- while (!IsListEmpty(&Ring->PacketComplete)) {
+ while (More) {
Well, yes-ish except that More is now not an accurate relection and you have to
recalculate it, and it becomes a bit disingenuous.
TBH it looks a lot better when both patches have been applied, because then
xennet can stop the processing, and at that point it's clear the the
"AllFlushed" flag indicates processing has proceeded as far as it can, and is
not related to some static calculation as to how many packets are left in this
batch.
MH.
|