mbox series

[v3,00/13] Removal of QEMUFileHooks

Message ID 20231011203527.9061-1-quintela@redhat.com (mailing list archive)
Headers show
Series Removal of QEMUFileHooks | expand

Message

Juan Quintela Oct. 11, 2023, 8:35 p.m. UTC
Hi

In this version 3:

- rebased on top of master (markus changes affected a bit.)
- the patches that need to be reviewed are:
  2-6: I have to do the QIO_CHANNEL_RDMA() dance after checking that rdma is enabled.
  11-13: I did some more cleanups,it should be only style changes, no
         behaviour changed intended.  I found that bits while reviewing markus changes.

Please review.

Later, Juan.
 x
[v2]

This was in a previous PULL request, but it failed CI.  Fixed the
problems with using:

QIOChannelRDMA *rioc = QIO_CHANNEL_RDMA(obj);

Before we had checked that rdma was enabled.

The problem was identified by Daniel.

I remove the reviewed by from peter for 2-6 because I had to touch
those files.

Please, review.

Thanks, Juan.

Juan Quintela (13):
  migration: Create migrate_rdma()
  migration/rdma: Unfold ram_control_before_iterate()
  migration/rdma: Unfold ram_control_after_iterate()
  migration/rdma: Remove all uses of RAM_CONTROL_HOOK
  migration/rdma: Unfold hook_ram_load()
  migration/rdma: Create rdma_control_save_page()
  qemu-file: Remove QEMUFileHooks
  migration/rdma: Move rdma constants from qemu-file.h to rdma.h
  migration/rdma: Remove qemu_ prefix from exported functions
  migration/rdma: Check sooner if we are in postcopy for save_page()
  migration/rdma: Use i as for index instead of idx
  migration/rdma: Declare for index variables local
  migration/rdma: Remove all "ret" variables that are used only once

 migration/migration.h  |   2 +
 migration/options.h    |   1 +
 migration/qemu-file.h  |  49 --------
 migration/rdma.h       |  42 +++++++
 migration/migration.c  |   1 +
 migration/options.c    |   7 ++
 migration/qemu-file.c  |  61 +---------
 migration/ram.c        |  50 ++++++--
 migration/rdma.c       | 260 ++++++++++++++++++-----------------------
 migration/trace-events |  28 ++---
 10 files changed, 218 insertions(+), 283 deletions(-)


base-commit: 9c53d369e5903375a2e3358f739be77dcb8dae49
prerequisite-patch-id: a642744ae4cf6c0496c47e370c426ad158f1d310
prerequisite-patch-id: aa888e3b6edd04b8142899097e362bdb92b8419c
prerequisite-patch-id: f134dbc50dbd43b08b7c75b4dab823c1a825e3f8
prerequisite-patch-id: 77b81699e718874f1a1f155b4adc027244fa4c09
prerequisite-patch-id: 41c776c1177500c0c1a1525502ce0b77ddd4e680
prerequisite-patch-id: 1a9ae5b4fefff0fd0324c9c1d1a4251d84f2bb3c
prerequisite-patch-id: 9b3b48af87e866fbc0d4375c0f2efa2b42c25724
prerequisite-patch-id: 32a8c6094e436d5f1c6a5d69956fec94c8bb881e
prerequisite-patch-id: 5f79b00ec37679bc31053c6c528afd13f06b42f8
prerequisite-patch-id: 94adbf9f2c95b70a37509a6f94e9e7bf1678cfba
prerequisite-patch-id: 337f3f3da1ae49ddc3891b965e16dc21405ed4d4
prerequisite-patch-id: c98919dc8a8b6269e506ee9045d14b231d18ab74
prerequisite-patch-id: 9620d1451b9f946b958548dd5a0dba0cbd563980
prerequisite-patch-id: 33eec6ff9be317b761828f462b8bef8b737b743f
prerequisite-patch-id: 7519631f4e405548fd1364ee9be6bf7441856034
prerequisite-patch-id: 0573e7503a2b4af033d6d891a335b17bde68fc32
prerequisite-patch-id: 31c1a5fba0dcd5ef4c2cc1d840782ac6daf3093b
prerequisite-patch-id: 9ccac4c4cbc449ac4b134dae6acc0d947db53c6c
prerequisite-patch-id: 45fc06b427ce32044a44beef01624f182d55e74c
prerequisite-patch-id: c8a09ca12169bbe1cbe78498a96b67bef54a3b83
prerequisite-patch-id: 96b55ca8d295baf92ca5326c2e1c2ff034f209d5
prerequisite-patch-id: ac07a42e73b99250240075db43e2346a43861b53
prerequisite-patch-id: 463ed3874c2105bc49c228a704f0f64082666735
prerequisite-patch-id: 6e0a7b926b1d1bd121b653b9af31bf86e2306d75
prerequisite-patch-id: 5a14bc1c342a5e106e9f5fc0dc3e9efe6115809c
prerequisite-patch-id: a8f2864bdc1e505d05b342c206a78f978aaaf256
prerequisite-patch-id: 192db2ae5a4f76ebbd8d4eba305c9ca04c238f91
prerequisite-patch-id: 0388fe2b872665f31e07d6ace2f6fc8828a9bd75
prerequisite-patch-id: f39efb2c37e5c44cdd6e0a9def244fd1b1983d15
prerequisite-patch-id: 5fe70f28e0e8bfc98f46997fe9e218f1b0760a74
prerequisite-patch-id: 705749e11dbcb0385a9271115db6de84e862d849
prerequisite-patch-id: f26a45e1d2a27ccb6f29389fee088c6c3cc34db8
prerequisite-patch-id: c51c6a79424753f2d0f91e972f6cc5541524b08a
prerequisite-patch-id: 55b8547b8d1b5e2fea645f9c7c1139579f496c7f
prerequisite-patch-id: afb1d33038f452ba2a6e8a941d1d5a1be19b7b60
prerequisite-patch-id: 1e08786cfc6e212def9dcccfb02cfb6367d50518
prerequisite-patch-id: 744b9bed0eeb611819c6ddd5df33f971f2f9dace
prerequisite-patch-id: 680112f82aec96983afc080a7d16b92bfed02577
prerequisite-patch-id: 00973779cec3f2b976055daa4192163b7d95b65e
prerequisite-patch-id: 18482ec2543e33f789e7a9c72e744af93ef33e9c
prerequisite-patch-id: 12ebcd6e922a83c12cbaadf9b4e6cbeba5af28bf
prerequisite-patch-id: e29068e93e63df655bf26d925e84cf5cc29b7ff8
prerequisite-patch-id: fec6297dfcd84bc16b16306b7d8bb327d1ab8203
prerequisite-patch-id: f822923d0ba068eff8f1ce3e9f64b3afffce548d
prerequisite-patch-id: caa125228de004ef52b92506423375725ca40e05
prerequisite-patch-id: 07c86a48d824a48013b7dadeceb1e1e0f92da2f0
prerequisite-patch-id: 21455c4c0686e02fa8391118abbd80092c3636ff
prerequisite-patch-id: bda8b62f586f3b8c0dc1654e29e41dacce3e7f22
prerequisite-patch-id: 7a6426f0f2f999580165d05aa3654314885f81cf
prerequisite-patch-id: 63b8ef272c9433df875763bd925d8509b54a7fae
prerequisite-patch-id: a276e679489d4c5d86843be460711ca2005e4942
prerequisite-patch-id: 573056cfd0d5b6010c0f641fd8d060c955516776
prerequisite-patch-id: 374e15b2f919e2c895cd67713bd1f505d47f6b6d
prerequisite-patch-id: 93de7caa8e8adbd91399fd328954a5235989e6ff
prerequisite-patch-id: ac4e8b8c471d825a7ba70a5ecb229ef4d422ddce
prerequisite-patch-id: a209f80f32c2871bc924f69b4990334e864e4beb
prerequisite-patch-id: b527a3384e047b338793bb4d72fc05b36a19897f
prerequisite-patch-id: d7818b56800afc3f8ba91281c010645192696ee0
prerequisite-patch-id: 9afa5b1d472470633a71f170b960eb71d7ddf9fc
prerequisite-patch-id: f1d30c2ac03b69114f4fb8c2da7ce7ffd3aec5c0
prerequisite-patch-id: cce34d6f1318ad5003f6d9bd50267bc269959890
prerequisite-patch-id: 2b5d29a274dc110f482d4855fbac8afed0eefc77
prerequisite-patch-id: c286c00b532c5bbc5eb47ff2eb99e96814a4557e
prerequisite-patch-id: 28ede7bda160e4558b17ee357788e5c8aa2c3924
prerequisite-patch-id: fdb380904bea7c8ad802ae3e7b49d79607fb86b2
prerequisite-patch-id: 986206d231f3c0f0c0f0e9752d998fe40d068daf
prerequisite-patch-id: 62abae9d4dac972dd5c2af94478f8203a3248702
prerequisite-patch-id: 4d5f9801ef51983643aa1e9eec6eedb043f8478a
prerequisite-patch-id: 0601e111d160488a42f280047742345f822d7902
prerequisite-patch-id: 859cdba61dce53d4c16610404592534950d97e96
prerequisite-patch-id: 7e7d10a05eb0688eb75058d7aac83a8eafb6d045
prerequisite-patch-id: d3fdb8829d5264eb825b6a5efc9373d517db7368
prerequisite-patch-id: fbe0f0d93e8f6260b366c205728a33368a57311d
prerequisite-patch-id: a39f7727cfc2bc6e14d6febe7e53f07458fd0b56
prerequisite-patch-id: 66b3e7c522420fae71cd72443761cc449e8c03c8
prerequisite-patch-id: 288b3d5062b66024d71e8a9a9089e133015c3253
prerequisite-patch-id: 082cfd7a93ebd1715f318645bed4c205cced6e6d
prerequisite-patch-id: 8149a8997c10700d30bfca4ae60686f09caf5ecb
prerequisite-patch-id: 819c8a90c902f7a7680ccb7a52ae15a28ddb88c5
prerequisite-patch-id: 3724f8660ecb024be25a0c1aaabb17d7e6f80998
prerequisite-patch-id: 579e9b84d69f3ba6aae0d7b09a65e690c2424351
prerequisite-patch-id: c3d5d45a2cdaf9cf7c8edbb351763442412957f6
prerequisite-patch-id: 80a08d3f929600a116ecfa152ad53eb60fbe34d3
prerequisite-patch-id: c5e0e1e17478377169e000b862c4bb597df77752
prerequisite-patch-id: c3c48e3d692f4750eada7d79b76b457c4a853b63
prerequisite-patch-id: d24535e03c26ff321b7e297d4f7ea7e9df4664f7
prerequisite-patch-id: 65e78109d58c9207e065cd6c3627ac449424b016
prerequisite-patch-id: 7001c8324337beb4aa308d824fd5f9a34e7791ba
prerequisite-patch-id: ac02f1952b0aee1a93e4b1d3fe8f43f0e339d818
prerequisite-patch-id: 72d790c4155c298b579336acb47c83ff6653589d
prerequisite-patch-id: ac19c959876a8bbb9c1882d8e9ff037f184cfcfa
prerequisite-patch-id: a56fdfa409932c69e33efa8c76f602e208880c0b
prerequisite-patch-id: 6d82a34b13088e4ce2f0dae93f32b9f66bd4c393
prerequisite-patch-id: db2f73c97a95d371d3fdb207515cce508c9989f3
prerequisite-patch-id: 89e1ac3c38860cb8cb04d71e20e9c9a65a763e3b
prerequisite-patch-id: 8a375e7f1c37bf428212a259d9cc1036d8d1dc1a
prerequisite-patch-id: 1c7a7f19a135e91ab9a53679b6cc6131b99ed517
prerequisite-patch-id: 4f7d1e5b103a04dca60ffd19f36e80e8cb429e53
prerequisite-patch-id: 9c4e4c3b46d322f47c6308fece957798f25eb8e5
prerequisite-patch-id: 9c34d1f77a441e4da38776a99fdde06e05df86ba
prerequisite-patch-id: b75cb81e6367165531b7d7b0580b38f39ef217e3
prerequisite-patch-id: cf9a2ca06cfbc952fdcb97354b7afd1a197fd7cf
prerequisite-patch-id: c0fc4ff42f0442ebd370524d70e9bfab875b6fb8
prerequisite-patch-id: c1026f17e91aa65896b6a9718a6c1561786a0dba
prerequisite-patch-id: c493c9396e56f8fe7450fa7793c4d76e2e24d19e
prerequisite-patch-id: ee1b773a973122e94d9e1575ba0b0e624b74bea0
prerequisite-patch-id: a550ae70e05edf36818d324dff3e69e119a67a66
prerequisite-patch-id: 559a8ec4ec570962130abab2e78233e3c6dd075e
prerequisite-patch-id: d5d40f38fe5a3791577141d5bb8638e2bc538f2f
prerequisite-patch-id: d93aff176a06e84a239d6c108fab7346bb2ef255
prerequisite-patch-id: 5024e0351a3325ed26a9908719962f769e4aaadf
prerequisite-patch-id: 86db074f818e88068e12bd99457686a407c511e9
prerequisite-patch-id: 56ec97f48de244067f8f7d5118bb5c23767ec8fb
prerequisite-patch-id: 1e339d1ed61e0d16148c0ad4b121590ff9a7de79
prerequisite-patch-id: 836aa30452015793da4f08745747b6da9f7416c6
prerequisite-patch-id: fcc50463c977c00c058c18cb2b2c84361307d0c3
prerequisite-patch-id: 6823bd96ee68beaf88980346b1e4a77acb6dcd6f
prerequisite-patch-id: c5bfab495ed8a885b489c582a294173598c02a25
prerequisite-patch-id: 2b4537690434218704ea75f557b73c97f5a8ac52
prerequisite-patch-id: 84ae6708e36ece3785a10f5ae1a95e0b2090507f
prerequisite-patch-id: a6a7fab2ffae7cc6211f9609ca9ce06cd2630aca
prerequisite-patch-id: 1d9485db2af9a94d19da8ff30f02d53cb9a82e73
prerequisite-patch-id: 68fd3b478a69bd2c0e69345b192696ad8d339837
prerequisite-patch-id: f6a30cde148e9b16e61b30a5619a1de97f8c15e7
prerequisite-patch-id: 2c3754fb098f74eb43e076ea1664b6a199fc19b7
prerequisite-patch-id: d7e93c2c8d79f954f0e9befc9e968147ead93895
prerequisite-patch-id: 1e8b3c0bc3480d5e84b1174a8340a233f496feee
prerequisite-patch-id: 8299ecea6069abe2a487ae74613368a5168f5a5e
prerequisite-patch-id: 00993842d3771f406c8ad7ba9286874483937e91
prerequisite-patch-id: d36ee7a372233c9a4fe79e3c8c37e0040bdf366b
prerequisite-patch-id: 741c00ba81025ca4d818d0c4836e4893e15dff55
prerequisite-patch-id: 92f98da641d37cdeb5dbb0e0976c52f184dfd3a8
prerequisite-patch-id: 6144c172af573ee4d49dbe1a7d1b137d64fda833
prerequisite-patch-id: 80dab0ced0453f03a6d5460e928d8c3361482fae
prerequisite-patch-id: 0eba7039a4d22f2c75190675dcaf830198baeeb7
prerequisite-patch-id: 42bb1b5546325f459357ccc6a3f98616fe81e36a
prerequisite-patch-id: 9641142c69c604842afabae1ddef46da7876037e
prerequisite-patch-id: 7cf8ebf37fec9b02f25951d0b5327c4fc6c9ad65
prerequisite-patch-id: eb37d1ca1c36a093e20e42a91e37bee7616344b0
prerequisite-patch-id: 3dea5fee8bd1e1c4504c33ea304d395f3c8d24cf
prerequisite-patch-id: 016c43d63c306df0e933258c9bacade75c2599ad
prerequisite-patch-id: a6d45bb4c9a49098ef74d01a296ef25d9948df31
prerequisite-patch-id: cd4ae219d9550160dba1c1b3b65b5146ff541c8b
prerequisite-patch-id: d039b3038ad90215bbbba8629075d0c79325a402
prerequisite-patch-id: d08941930a26dbb0986bc1749eb91cfcf11c80d8
prerequisite-patch-id: 04499268709efab5a78c57e1bf702901b6aea223
prerequisite-patch-id: 245477bd0790be8320fd42d79a769dacb6ba649a
prerequisite-patch-id: 7e8bcd6706fbee1937359a1de1f44db98019d204
prerequisite-patch-id: 574d32c9b0a762ef745c8ca4cabb4f8dd9d664f7
prerequisite-patch-id: f5b85360d5fd768ee3777f77be718b8fc5e6898d
prerequisite-patch-id: 0237bf2072665b87b122fdfd1d2780a9953aaea5
prerequisite-patch-id: 623e26baba4ab58e6db7e5fab55af21cc703b47e
prerequisite-patch-id: 33b5ddb95318120d45bf52c4ca15c2f9d4e8c21f
prerequisite-patch-id: 1e44d6ced4b5a40b6dc129e342d652f9b0bf173d
prerequisite-patch-id: f544e3070b70cf9beeba9a06472dd288a4a6a629
prerequisite-patch-id: 59b79fd9a3197bf6ffb1a754df5132c183eff987
prerequisite-patch-id: 7fb9863bb8b966cdc48ba84bd481378be2b3ae9e
prerequisite-patch-id: 88cd18b39911c65555330fdc101fe4c77ba6c86e
prerequisite-patch-id: aaac7c69584853923f3cf52d53114253a8c66492
prerequisite-patch-id: cba200cea7ac738363bc67ecc80f51603bc3d879
prerequisite-patch-id: e8b75d23ec12259ed71629c51354e2d87acf1cfd
prerequisite-patch-id: fd1eb9163547061cbe869c3d396a9e938681975c
prerequisite-patch-id: d30fff3c01862f14419efd1014fe0c6f2141c21f
prerequisite-patch-id: 122eab56e2d951665f2afeba063690a81d14a065
prerequisite-patch-id: f4d11e0ad1dd956090bf0f6cc0151a2d61422182
prerequisite-patch-id: 6c37b25c7306ef54a304e7b5189e8e0197bd264e
prerequisite-patch-id: 0559b3b63b97904c706ce5e787b51df67a84ac98
prerequisite-patch-id: 47145f1803b70f8991b35a9e5a97bfe24281980e
prerequisite-patch-id: aae60043f4a4d5379f73ea4c6a32d0ee17bc07cc
prerequisite-patch-id: b2b0fd1503c6b0e82d65cdd045e05530a3f61825
prerequisite-patch-id: 3dab59dcb5c86f5af8aef1107e36af6331131f97
prerequisite-patch-id: c8c08183539df9462bad7487f6622ee3007b8aad
prerequisite-patch-id: 66a1535a62accced57d682e2fb5dd5dbfa04c0da
prerequisite-patch-id: 1215c931d4d2ad04040d130a45d8727e45ac3a41
prerequisite-patch-id: 720312ba274670c4e33b731f90ce45704d2885d0
prerequisite-patch-id: 93ce6e4af5d78ccad9bec9e5ad23ea816f85707c
prerequisite-patch-id: 0990e21c9630514ba3cf595522a077bf4f40828a
prerequisite-patch-id: 63c55126cfeadd699b85c7d058afc0855d3c2e3b
prerequisite-patch-id: 02e9f51ccb8cbb4a6eed9d849fbbdb331fb44629
prerequisite-patch-id: c40c07cb63c3c6843cdfdf438870ca0537365757
prerequisite-patch-id: 092a7751bc81a3d88903880a6ff99195bc48a219
prerequisite-patch-id: 4bfdc23c62168ad668e8ba06a882b4e43cf25e73
prerequisite-patch-id: 6932e36797fe1dcd0964032d4fb302147d8427ec
prerequisite-patch-id: 7761523114e7ba32f38a2a20182a1575a7fae343
prerequisite-patch-id: 47263c10d2f7391f6ce0f10e8c3a76dd6ad29a64
prerequisite-patch-id: 422165caeeb95e85c4374a23d73f35d4c6320e94
prerequisite-patch-id: 87beb878745570d830ff586303ac05a7551ab921
prerequisite-patch-id: 161a92193b9b5104d75917ed4982c839fbfad936
prerequisite-patch-id: 6e6737a09918a406bfb2bf622de289c16ced570f
prerequisite-patch-id: 8d4fab2420801c339f6f57e74fafe8f77b838644
prerequisite-patch-id: c19fd26575e6eb1247fe12e7001ad0a98eeecceb
prerequisite-patch-id: 34d8eb8e21bd75dde0f11c4ef81ebf13f7fdd8e1
prerequisite-patch-id: 25bb8888eefda70790bd5a7fdba63ebedeef779c
prerequisite-patch-id: 27e5d8496d033586a9d11baf1a074fa002ea7994
prerequisite-patch-id: 80c1d7013af023120c0d5433117ebaa74d2f7cc9
prerequisite-patch-id: 03970a0c08d4508d9f4a42448d2e622be0a2e70c
prerequisite-patch-id: f11c2b2276d6976b8eb884edcb0986e270c45e38
prerequisite-patch-id: 2b6db66aaad79983a369222bab3b06838e0c70d0
prerequisite-patch-id: 41a2854375b05b4799f35a3bb463b5c50a36f632
prerequisite-patch-id: bb8b2a51bf99d8edd9870eedb7cf0f4978a4322b
prerequisite-patch-id: 26170a7c70e984354351d3821e8452baed286378
prerequisite-patch-id: 0fa6ff823cf980db3db7c56ceff8df325725023f
prerequisite-patch-id: e03a6f772cb1daaf543d794f77ea74d8c9b6f025
prerequisite-patch-id: af08db276a0f6739dfa2fe2265f0201855e116ba
prerequisite-patch-id: 8840340812d54380cd9001ae14a06db11f0ec95d
prerequisite-patch-id: 5ad7f78a7a609dc63df5f620ab77319a3751eec2
prerequisite-patch-id: 12b8fe32f51ff9d7ab27c4b7932707617538f981
prerequisite-patch-id: 80dcfc29089e21ada005ec8a1a00ff5b24c238dd
prerequisite-patch-id: 9d8ad7691436c6eb5f6bf1cd300c454f474c3cf4
prerequisite-patch-id: 0c1d3f580c0a978243c5f2dabb8db3768cc1f42e
prerequisite-patch-id: bd7b56fe76bce49390fe9d38d3cb4ff49886a945
prerequisite-patch-id: 309c92a23e990d2fb6751f496eea41a784ead810
prerequisite-patch-id: a7446da60e286bc718accda0986c9c5487de5b23
prerequisite-patch-id: a16f00c8bca5cf3a686c6181053dc1fc545d2b0e
prerequisite-patch-id: 300aed2cf3511cc17778050ec88248de90ff413c
prerequisite-patch-id: 1ea8c6d0b80f1e96ceccb0069516cc09ccedecc7
prerequisite-patch-id: a4a02a9d69f70c0c64e2867e715dd01d9fc36a25
prerequisite-patch-id: d4cad4f931e565451cbafd211d2ec71f1415fd3b
prerequisite-patch-id: b71059dff0fd4254a363d9e069f2e4f171f1a017
prerequisite-patch-id: e7e698d80aea66c7603939267c0c8bed2f1520c4
prerequisite-patch-id: 5c07460effcda2cd96da8699b6b6f882fd9d657e
prerequisite-patch-id: 604ba40ab99a70d5da95c7788442aa09f9ec4363
prerequisite-patch-id: 8daba8c0c684d375e32ce8004d62195ba323d625
prerequisite-patch-id: e933622649b3d9c135b197bb610254d1df76357c
prerequisite-patch-id: 6261e03dfd2a03cd99dc3a14eb72ef1b9318fa84
prerequisite-patch-id: 5a6a9be47bf4001c61e80679ef5e78d883dae1a1
prerequisite-patch-id: 5955b0dcae54b25a689d613650c94fd600df5264
prerequisite-patch-id: 9d59d8e351dc0ab754048369c258420d363e6f8e
prerequisite-patch-id: c195dc8d9c2bfdf177a21322abfdb0687a316280
prerequisite-patch-id: 3a23b4162f6c6ffe72460f86999b99c0ef72c8dd
prerequisite-patch-id: 96ea106137936418531b176b3df8a95a7ecc73d9
prerequisite-patch-id: 03bafab7c9ac1f2d541ba0c4ee782564cc627053
prerequisite-patch-id: f57098aeab32c09af19ef25689fd4cf7debc48c5
prerequisite-patch-id: 46e18a2974ad72068bbd95de6e1479f9e7f39b28
prerequisite-patch-id: 177a9678b43144b2fa16c2dac978cb1b02bc050f
prerequisite-patch-id: 7bb75c1679ad2aba67ed08d717a6861758d3353e
prerequisite-patch-id: ce7580a5904127563f201afa0df5f11516322988
prerequisite-patch-id: de15dbe8d7020945ac1fe0e5ea2227acb0126871
prerequisite-patch-id: 16124dc834c3c0be7772c500d8bc072ae88ebf18
prerequisite-patch-id: e1a1a39c8d05d8ee7af281f1368ac24199f1a64f
prerequisite-patch-id: 646cfd01f7123e7177aa41dfa3304a52886f1391
prerequisite-patch-id: 52f698b374451a7a5fc0d89ca7e4910104664a61
prerequisite-patch-id: 06477098a3c103b6e930e76ea988f8cd9751f14e
prerequisite-patch-id: f8641ec86e276dbb9b8573570929296d78a496be
prerequisite-patch-id: 62eb4dfeb345265921e0a3fe63c8b03379d8e1f9
prerequisite-patch-id: 85e2283dabcbaa1a4e6399e6a3fdbbdcf5fe8df6
prerequisite-patch-id: b034427e1d468d2c3e68c575cb223aff07c27f18
prerequisite-patch-id: fe1c96869b7bb48ad946fe8960dd47236428316e
prerequisite-patch-id: ed618da2baeb745656bbcb85233717f4e8a16ec6
prerequisite-patch-id: ce494bc64fdc5d8f5349c4956b2c2c28309d24d7
prerequisite-patch-id: adc40223384923e68ffa1cbf04fa1109031fd070
prerequisite-patch-id: 3558ec675825f2637ee1ffc2803ffe4c71e9adf1
prerequisite-patch-id: 6a923c5060c6fb310c3123ab6934b7146c1fa62b
prerequisite-patch-id: 2ddd27b3bb34dc874d72a213888f2baa08066cfc
prerequisite-patch-id: d1e7476dd13b50448f23d05f3841a3fbeec2a29b
prerequisite-patch-id: 8edc85731afa09ab3ead2801cec4c6da0c155ce5
prerequisite-patch-id: 11d23086508f828362c1368963068aa3f8176bc9
prerequisite-patch-id: 226743af578ca7ea5536e6b969c4320c8534efa8
prerequisite-patch-id: e1ef91702838bb02342a4bcda1edaaf88f5be25f
prerequisite-patch-id: 6fe048e362a5752d4e35b5704f64f7306336013c
prerequisite-patch-id: 8d0c0b4964bc844721e75fc9d61e5a0ea9b7007a
prerequisite-patch-id: 0667214d7a2274b881b28290566fe7b42a40c707
prerequisite-patch-id: 5698bae54385032156f997c3d142d8f3ba2082d9
prerequisite-patch-id: 5b63eb3b7a6752ea45faa4a1b79197c74796478a
prerequisite-patch-id: 5e3eebf376b7946e3b1472efdc65fb8f0262ba04
prerequisite-patch-id: ed44519538434354dcd57ed1471921dff42e48cc
prerequisite-patch-id: a61e73ed91b2e43fb6a4605e237e2f5234935788
prerequisite-patch-id: ec74c40d81a69bd9def8e72c0c2862e7bfa34392
prerequisite-patch-id: 28cc87e81b9f18f6b4020527aa2667b3c5a08992
prerequisite-patch-id: 575325b0c59416c456f785c571b8cbe6832ee3c9
prerequisite-patch-id: d293132c07c0aa29eb6daf6558b13c0994f9465e
prerequisite-patch-id: 50da47e08987ac369dd3c537b199780b87bd07f7
prerequisite-patch-id: 2d5d49b0297924b6ae4bedf549e76a53d09ff241
prerequisite-patch-id: f705318953cee2a88fa8539c50c5c7cb34b47e81
prerequisite-patch-id: 6556b25559c8f2d9221119fcef7a6f8b0000bffc
prerequisite-patch-id: 15b336dd016a55286b9a0cbe66c3468042c6988a
prerequisite-patch-id: a2d3f2b0756961a6dee938e0aee80af6a5107462
prerequisite-patch-id: 32242a624531fe2761057a310abe3974d7b72932
prerequisite-patch-id: f6c7dd04f61b64cf8ed50b97e1e52c856c4bdd58
prerequisite-patch-id: d942269a0d51d635a3c0a24d3cbbeb07d7ba0cd4
prerequisite-patch-id: 4972c66c943f28385282404907731d60a15ae6a2
prerequisite-patch-id: e01bec67b49cb36f03b3faa8b7cd0025829e9967
prerequisite-patch-id: 12b4099c12ab1052cc183679e4dada4d20e32f9b
prerequisite-patch-id: 57dbd88e3f1b723da124ed32eff9209724d4fe36
prerequisite-patch-id: ca74756b672853a56f0685d52bdff3b5e9fde8ec
prerequisite-patch-id: da3d809bfccc44920952ee0efc4ef58bf33455e1
prerequisite-patch-id: 64a058d6f4376703f3e189116a607399ee910938
prerequisite-patch-id: 791c5706b52d5681207fa31bda57b12737dc62bc
prerequisite-patch-id: cf4cde0f39206b724c4645e3ea9cfa6956ad6a41
prerequisite-patch-id: 5c6248eea976632d7282cfddc084aab044f31a88
prerequisite-patch-id: 51aeac7010fb3d4485cbf7a7d786a4127bd35974
prerequisite-patch-id: bd0b9c4e94ec6508289c3d42c17fd5047f15d159
prerequisite-patch-id: 540cb2a36b0263712c010f5c257b1bccca217fb7
prerequisite-patch-id: a4366d2cbd802c8b19b1391d72c80e1ac7f20bb3
prerequisite-patch-id: 54cb6a8a063b2b9ad6173e581da70db9e93792ed
prerequisite-patch-id: 3abda2f36b2abcc0efe48764a57b5126800e3416
prerequisite-patch-id: 12145df8756446dd6b83763e2796ae5e269e1408
prerequisite-patch-id: 74f48d1ef15f6c8325533663b4e19be851daad93
prerequisite-patch-id: 5c252ef4bfd112cbe7bac4b1f5a9ab5f57adce7f
prerequisite-patch-id: c6690df423dc505938a5469c8f5519ea6dbb4c44
prerequisite-patch-id: 14daac78b63222cb227e2431f5acc3891e4faaf7
prerequisite-patch-id: cfd531e736925d8e761aa40eb20b9fd785beaf30
prerequisite-patch-id: 0b41879a2cf98f43aed1f95c52cf0cd1a86d7f4b
prerequisite-patch-id: baa1aaadfb98868cd9f1abb2cf94884b1a01a526
prerequisite-patch-id: f93f40b3933cd666a46714fd75aae647e2f8f423
prerequisite-patch-id: 40afc08766f52958eefcae46f722b07693573515
prerequisite-patch-id: 22e0a7ac2de82492c7c4f29b99e8d7829e8eaa2e
prerequisite-patch-id: 206e1271c5bdf238756a25eb737d9b238eccea9d
prerequisite-patch-id: 1a24cf62c5207a6b25d44333c4987ad6e6fd8666
prerequisite-patch-id: 399290f9249d59a827b839fdef2516ebe7adea9b
prerequisite-patch-id: 3b55efc67157b2fd864c4b4d95cc40b81abeb3f5
prerequisite-patch-id: c445f642cea2226e88d7bda1c9290a6bf2661aee
prerequisite-patch-id: e84efae9e420a5bdaa338990e3d7e5fa69399521
prerequisite-patch-id: 878dfcc403394df26a16017556c111de96caaaee
prerequisite-patch-id: 5c76fcd52fee4095d2c85bd8ea5e24b2c52435f2
prerequisite-patch-id: f27240b7f7fbbd7d64d062994618c62b64a99963
prerequisite-patch-id: 03937b6b34d7724d50f60d9a892aee352a038f8b
prerequisite-patch-id: 7f11a5824cc7051155a7f2630c5a892008739138
prerequisite-patch-id: 86459ebd6e1874265a2d0f9d820c17ef7a4c1100
prerequisite-patch-id: 9b3484a93206a1e2acc21ef5b5fe1f59cc1119b4
prerequisite-patch-id: 44cf1b2a2e69b349f6ec77ae232787cccc706374
prerequisite-patch-id: e9ee30adae84568f8b4b2964092d381dd59f4495
prerequisite-patch-id: 079be170ade5c38c85b41916d0925818ed169bf8
prerequisite-patch-id: 656dbda52ae8f30fbf8234768695eab3563f8efa
prerequisite-patch-id: ed73007e467a652b2805814461f208f6d599fa92
prerequisite-patch-id: 26605334fba845211ba8c34f01e7b42dcb7159a0
prerequisite-patch-id: 3359e913bfa87bd7dfb184d05c10391d63840856
prerequisite-patch-id: fdd714f52d4e0eeecebdcf26ce885eafe622d5f0
prerequisite-patch-id: e4c9c22de0668a0093e58ed505350adb765be101
prerequisite-patch-id: 7085ad6bbcffaf044ad3d2be7de69c0986e907a6
prerequisite-patch-id: def93f1825f3ea005340708cb6d66c0c72ea3f08
prerequisite-patch-id: ba54a3757ca8ce22d1d3680637e61b92354e2145
prerequisite-patch-id: ef2cbc9a035206dd254d7d593f85520cf46c89bc
prerequisite-patch-id: 4053a82bda4d675259e50e681b585d21deb8a3f4
prerequisite-patch-id: 020948bb4287a1d3948e374bfcd1c28a54b2f089
prerequisite-patch-id: fc32dd217075ee911cc471910fad1dabdf22b460
prerequisite-patch-id: 303535557c2e0481e3da00cafd28a96bbed3bf15
prerequisite-patch-id: aeff03dad7186a69e23838c55033855348c4215e
prerequisite-patch-id: a750c1baa5364117a38246b95b796613a1f17488
prerequisite-patch-id: 7d1c6734c99325b5c112a9ba86e23f70eb9d1d5a
prerequisite-patch-id: b48b56de03cc6b4c5eb507e292425f1a6d2bda35
prerequisite-patch-id: 04f179d074713c7fa971725b288481559807fdb9
prerequisite-patch-id: 4993a43580d07e1ebd0eb89021dca20131168abd
prerequisite-patch-id: d995de72b856764d0c08200d318de138824832d3
prerequisite-patch-id: 2e79dcb5c0234ea43e417a97c1b0a67447052e0e
prerequisite-patch-id: 29d16e89d3ef1ab2991f78c5b8109dcc952aeda0
prerequisite-patch-id: 0569786ca769d286dbec202177cc87e0e1477613
prerequisite-patch-id: 5836a3680ca0cc615f980c8bd6e6c66fa0136b7a
prerequisite-patch-id: 467de9f897ecb6df2e80ebf801253a47369eb724
prerequisite-patch-id: 1ea8b1461386758cd19f8b10a1b083f124df3759
prerequisite-patch-id: 72a39381c4bd71587964f0f248782ed6ec2980dc
prerequisite-patch-id: e6bac660218cc79c9715a21077668344ec07654a
prerequisite-patch-id: 974c6e842fafc6c1b72ef738eca44c0c0ab7c6cf
prerequisite-patch-id: dca81bd632b40ebb98be6ae63bc52e26da7a9529
prerequisite-patch-id: 365d9ae519abf820f4b1a5a1a62dde1ca8aa5959
prerequisite-patch-id: ebfac8ea7d7066ca8b74cd380400f05b3522bb75
prerequisite-patch-id: 159e256bc5355d0c44071727e267994045f30d5e
prerequisite-patch-id: 06bc44fed8381627fef2c617f8d51d3a3fc1a7f7
prerequisite-patch-id: c942c4f97c3cfe4d9fec407ed5e617d61cb265db
prerequisite-patch-id: bb7663158d8cdd5204026ccd44427a39314ab61c
prerequisite-patch-id: 45fc5b84d8b6582a8a1c63f7bdd58f8a12ce2097
prerequisite-patch-id: ea144131a78bd4845e059f6940b77f9f629441fa
prerequisite-patch-id: 0a1df2069218bf5fbed5eb34ebfaa91ab735d375
prerequisite-patch-id: 5669286f5ffd11ebe60c8b3c195df4807fa3046f
prerequisite-patch-id: 032e77c81d8d5b46d150b772b48c9fe44c59417c
prerequisite-patch-id: 9c187e92782c9e10cce20fb85abb9313ac8dca34
prerequisite-patch-id: 04a32a1f4f04dd2be4990aa932b89c13309dff5a
prerequisite-patch-id: 12ae21d99550ab3017e061e876a54a7813b98a24
prerequisite-patch-id: d6ab1a1e0543e6a811fb8660bff7b3c6c9fb79ae
prerequisite-patch-id: cae77a161c6436e273443a60ab89ea2b9caadcae
prerequisite-patch-id: accc6aa85d96048d9573f6024ef19e892fb771c1
prerequisite-patch-id: 0755a15be619e22a1807663a63b2d4aaa865c39f
prerequisite-patch-id: 0fda70e84a1f7a8826f327a8903216d931350313
prerequisite-patch-id: 7521c2674155ee33c6fd4b13433dfc37b7da1545
prerequisite-patch-id: e35f52d3aaf92e494278ab198cd9daf41c87be05
prerequisite-patch-id: ace24a892268d39e125268de1539b13e770b7dab
prerequisite-patch-id: 5088a3dd5c582bf94a0192a561082ef8d358626d
prerequisite-patch-id: 4f4cf713036961e5ee4c2c083494e41ea878eab9
prerequisite-patch-id: 993c013205edfdfc0cc02dd9c2d84dfafaea7f2f
prerequisite-patch-id: 479940c84f0a3912450f8c5a01f8fa8e5a147ae9
prerequisite-patch-id: 547e6b809238472cfe60f9cf2c13a4e1406431c2
prerequisite-patch-id: e95cb5aa5abadafdc3e223e3652562e4d4ae0b42
prerequisite-patch-id: 37c55a638ac1c9255a960efa850f2993df636283
prerequisite-patch-id: 3649898edf67c2efe4fdeee7a4c9a19c64758015
prerequisite-patch-id: f3814ebb95833dfb2b781c6d1b721358fe7a86c4
prerequisite-patch-id: 582c153fb0196263c46d6bfecfca474cf97ea86a
prerequisite-patch-id: a4193bdd1a804212b51590df345830fe30c91622
prerequisite-patch-id: c40bbd0696c4a3c3159f41cc76d20f3a989d1d92
prerequisite-patch-id: 109c3ed81a22502e152c56cbaf30de6508cfef10
prerequisite-patch-id: 83ab1edeeade5181ec01f61b3ad5589709cacc98
prerequisite-patch-id: 8bde4195baa5d57c0c2178e194521321db203015
prerequisite-patch-id: 050bb11ad1d44fb1412a36610674fc630cf055ba
prerequisite-patch-id: aa8f02d2c6c49e6a3c83b5d5b30f7a620f647575
prerequisite-patch-id: d64333cd2b975b9007c3ff40d313e092da8b4315
prerequisite-patch-id: 0daecd52ff675cb116bcec7c9b56bc789499ca8d
prerequisite-patch-id: b295020f202874a7e56eb1ca47cc401f1cb2970b
prerequisite-patch-id: e007a3c545af12c4f6e58f9c89d7408654eb2303
prerequisite-patch-id: 6598db8c7e66851971467844133edb09475aa0e4
prerequisite-patch-id: bbc69807a7f816d7aef864a2c38320fbc8ffd15d
prerequisite-patch-id: f07b8ce0913ceb49e2c68f97c38c7f085a066d05
prerequisite-patch-id: 5194c8a5a0e285b45a58df725659730a5d995cd7
prerequisite-patch-id: ed045b28a470a647a11807868a8b017c9d690cf2
prerequisite-patch-id: 55e52337c273e4727ffcd40f08ae0cca735ea6d4
prerequisite-patch-id: 8580494286eea9828056a0bd83aafb49aa5f56d5
prerequisite-patch-id: 455467289a62c2d86fe1da779959fa5935545d1b
prerequisite-patch-id: 24949818dce6c86ddfdb32494a9ea6bf80640733
prerequisite-patch-id: 1c0121dae636bd281dc487f9a8c76329da62e70c
prerequisite-patch-id: 6cdd272a9c39179b1a0fa857732703003f639ccc
prerequisite-patch-id: 36554575f8b98afb3e1406f906161f799f7836e7
prerequisite-patch-id: 5c33d75cdfd075f5ffff9ea98a3e12674f0952ca
prerequisite-patch-id: 3665c6622ed681d78405a5f346053f189e1fe7ca
prerequisite-patch-id: 41594c69b954d9b9fa4be524f187594ce16d81a9
prerequisite-patch-id: 3f589aae46cf8584d58be6196a1a392c04c0019b
prerequisite-patch-id: 4b6be64bc16edae79116b8177c7c1983874a66a7
prerequisite-patch-id: 6cab31f76f654992c828be80e45ebfb12d362153
prerequisite-patch-id: 026e2066cb9cfddd2c4f31c6c080e5bf3f44411e
prerequisite-patch-id: ae23d6f28ddc25aa9cccda7c8271db10018d7733
prerequisite-patch-id: abcf87333076ab9fa41741a75c1f43101c39d679
prerequisite-patch-id: 3fa60cebaa7996d93b7aaa8a9fc48b65f75698ba
prerequisite-patch-id: 8f3ec67550379c78e19a436390f14e32251fd827
prerequisite-patch-id: b0f4b0358ddd471fcf81a369f72e63ffec45d02d
prerequisite-patch-id: 5c32dc557e1bdd02f275e1c3e241dbbfe9b9a879
prerequisite-patch-id: 5a4fa5119ab2e82f621bf6bdeaf540e75f3cefb9
prerequisite-patch-id: a4141b27715fd9887f27be6ce819b3245afa5430
prerequisite-patch-id: ee46c59cd96e4d8b72c86d286834e34b9fbe6ace
prerequisite-patch-id: a8470f5d7704417c9e959521ee3d1e07ab42a7ce
prerequisite-patch-id: 792a7d643886eb9653c391a6461bd07f4a91799d
prerequisite-patch-id: 9aa8fa4212c14331cd0530b86035d783002d761a
prerequisite-patch-id: 01d49bfc3b5c6bd8d627332a84767abbb2bbe8b2
prerequisite-patch-id: c0f0721bd22d2de7b3e25fdb978d4e30f7c097a9
prerequisite-patch-id: e791a370f70b7affac0ae6050a77f5b41f700b30
prerequisite-patch-id: 19d17977cf06d06071289b16460079da3e533b1a
prerequisite-patch-id: a72f335bb4f6a0b99488b59b1a0968bbe52b57c1
prerequisite-patch-id: 721f9dd546cf51a1e3fa1aec5f1fae7ab3d15147
prerequisite-patch-id: d241b99a6b27cd32c5ee3ad59c15af345d0f7089
prerequisite-patch-id: 86f09d70fa1c60f6e4198d325ee2a15896b576f7
prerequisite-patch-id: 9abb9746d7e561b86c8e51ec723df18fd892864e
prerequisite-patch-id: 37ea219f3665e02b0fe2613587b83d8ebe922bd7
prerequisite-patch-id: 3479a7f74626b936e55c441b19fad5254250a30b
prerequisite-patch-id: 263fa98ed0599e55d0a88595d021a54241cabc03
prerequisite-patch-id: 7d7d01cc86ca00282c266f2e1b98ae4b27e03e42
prerequisite-patch-id: 3217af762876bdc11225ff77a4dd8961b75c1bc0
prerequisite-patch-id: 4563c1d310473c8a5f781d7f00e344619524180e
prerequisite-patch-id: 50b4a4b9f298299615aa47121dab2054a684b2b3
prerequisite-patch-id: e55bfea4b57fbdb315695ad0c30d3605e8dba53b
prerequisite-patch-id: 65178566427b05904ef3a8bed39cc717aa6421c8
prerequisite-patch-id: d04608ad87ea6ccaac2ab02b9fff29127baae542
prerequisite-patch-id: 2cc7893d9f59702f6eb11025a27ceaf66cd25450
prerequisite-patch-id: 022d51df339f7814443b6a8e63ee0e2b88477990
prerequisite-patch-id: aa131e1b3e56cf85c3c694d72ca3dca26f5cd25e
prerequisite-patch-id: fbfa28943694f7d4a5349859bed6e1ff5f1206f6
prerequisite-patch-id: 0bb83e97dac64aab7ef3472a8375c4f4cecae7f7
prerequisite-patch-id: a5163a84158d4cd9323d7fa3f13fc944345811c1
prerequisite-patch-id: bfb936bb71c275c157290f11388113b7ac9ec003
prerequisite-patch-id: fec230607a5121c485b56cf7c93041c897b64c90
prerequisite-patch-id: ae7007ef07d8573a43069c4adc20026f1597d9d6
prerequisite-patch-id: 47ddae10011cbc9b33c5b3956d691fe2a2f98837
prerequisite-patch-id: 4753c802d003347c73f37d9d75fd41f659d3cc6b
prerequisite-patch-id: 497bd197282d29ac00d4cd325bd916a47539990f
prerequisite-patch-id: fddcb9ada5aee17c0d521a4221b10b80f83e1693
prerequisite-patch-id: d9300056c8010874467ced302d5bc79220f6cdfc
prerequisite-patch-id: e7740fc4f9e42bc25867ae3b137ec6e295f599a3
prerequisite-patch-id: 535d9840efd087be6a18d7fb832d97db5c914f60
prerequisite-patch-id: c07d47c658501076f697d6fef1217cc71baea125
prerequisite-patch-id: 78ed5159ed35e45fb742bded8a2d0b6d9f35cf78
prerequisite-patch-id: 818881e28606fe5bfd87ce924d2b97bacf5d2dd7
prerequisite-patch-id: 168cf494133e41cf697456a6d5041e0bd30034a0
prerequisite-patch-id: a5ec071a2cb5ad59e93da8ce967343ce2aca22e6
prerequisite-patch-id: 6678803fd8aadf3d5f6587eba1634d3d15a18efe
prerequisite-patch-id: 5e761e10d74c37fb0a566febb7da69e2fc7b7bf5
prerequisite-patch-id: 43cc49f4fe37cbe261042e7218b6a0758450fbbf
prerequisite-patch-id: c59d0047937360ead2a09553abe1ae5aacbf175e
prerequisite-patch-id: fed3e7cfeb646ee4bd752c376c0e02d1f07d9bf4
prerequisite-patch-id: 4fa28eb48d52f8f450c32fe737efbcb9d12a789e
prerequisite-patch-id: 310ddb4840c7998c24faf90184a878d5365eeff7
prerequisite-patch-id: 163bfee098805601bcaa08135866a9e4c71dadd4
prerequisite-patch-id: 29f7730f31688a2d8f6abc66063b0dccfa54b47d
prerequisite-patch-id: 2d615f33f790b3d0d2bad07b54edce239db73706
prerequisite-patch-id: bf7e953344a27705ebc3bf132c945cb3fd4f6f16
prerequisite-patch-id: 7e9a6c2816cb0bbf60654f9defb76a750503e7e1
prerequisite-patch-id: 1d5af33232f90ffb0e916b4a18f0f18ca9d8dc27
prerequisite-patch-id: 42e7677255323422410fec3ab663fe3775f4c853
prerequisite-patch-id: 1d48b0550736055134b452f1b1bf418d833ac3c3
prerequisite-patch-id: 7d902425133d420b2efda486b6b3bc549b9e83c5
prerequisite-patch-id: 4282c639899ae55ce37c331fd448cb80b8fa2b13
prerequisite-patch-id: 0f5cf0c7fa68c21128b883154eba1b1626742c6e
prerequisite-patch-id: 25999cb34dd4dfa87215f53377a60795922aa4fb
prerequisite-patch-id: 6fd8e3fa1de596ddeb1126548c5d5c4017d7940c
prerequisite-patch-id: 699ca54f48a38a12d905f4a3135357699555f54c
prerequisite-patch-id: 9f96f63302914d3888be06e44444dfa5ccd506e1
prerequisite-patch-id: 39068eb9ccca93871e8c1d4cc7cb0c3ef1b0cf4c
prerequisite-patch-id: 597f470c751d53ad4e996856bfffd1369d6f809e
prerequisite-patch-id: 37f1e013db7f1c08c4fffe5f790a162878b9389e
prerequisite-patch-id: d1fd08422b13e9ae291ff1e545a435e4f3ee5fcb
prerequisite-patch-id: 8d3ed5a544e3f007bd7be46a6e77ae4a58eea2c6
prerequisite-patch-id: 31ebcd0a9928b77b72d13b82dc529a720f8f9425