On 4/29/22 12:11, Robin Murphy wrote: > On 2022-04-28 22:09, Joao Martins wrote: >> From: Kunkun Jiang <jiangkunkun@xxxxxxxxxx> >> >> This detects BBML feature and if SMMU supports it, transfer BBMLx >> quirk to io-pgtable. >> >> BBML1 requires still marking PTE nT prior to performing a >> translation table update, while BBML2 requires neither break-before-make >> nor PTE nT bit being set. For dirty tracking it needs to clear >> the dirty bit so checking BBML2 tells us the prerequisite. See SMMUv3.2 >> manual, section "3.21.1.3 When SMMU_IDR3.BBML == 2 (Level 2)" and >> "3.21.1.2 When SMMU_IDR3.BBML == 1 (Level 1)" > > You can drop this, and the dependencies on BBML elsewhere, until you get > round to the future large-page-splitting work, since that's the only > thing this represents. Not much point having the feature flags without > an actual implementation, or any users. > OK. My thinking was that the BBML2 meant *also* that we don't need that break-before-make thingie upon switching translation table entries. It seems that from what you say, BBML2 then just refers to this but only on the context of switching between hugepages/normal pages (?), not in general on all bits of the PTE (which we woud .. upon switching from writeable-dirty to writeable-clean with DBM-set).