On 8/13/2020 8:48 PM, Andrew Jones wrote: > On Thu, Aug 13, 2020 at 06:26:53PM +0800, Peng Liang wrote: >> Some CPU features are dependent on other CPU features. For example, >> ID_AA64PFR0_EL1.FP field and ID_AA64PFR0_EL1.AdvSIMD must have the same >> value, which means FP and ADVSIMD are dependent on each other, FPHP and >> ADVSIMDHP are dependent on each other. >> >> This commit introduces a mechanism for CPU feature dependency in >> AArch64. We build a directed graph from the CPU feature dependency >> relationship, each edge from->to means the `to` CPU feature is dependent >> on the `from` CPU feature. And we will automatically enable/disable CPU >> feature according to the directed graph. >> >> For example, a, b, and c CPU features are in relationship a->b->c, which >> means c is dependent on b and b is dependent on a. If c is enabled by >> user, then a and b is enabled automatically. And if a is disabled by >> user, then b and c is disabled automatically. > > And what if a is mutually exclusive with b? I.e. a and b can both be > disabled, but only a or b may be enabled. > > Thanks, > drew > > . >
Currently, a and b will be both enabled or disabled. For example, a and b are in relationship a->b, which means b is dependent on a. If -cpu host,a=off,b=on, then both a and b are enabled. If -cpu host,b=on,a=off, then both a and b are disabled. Maybe we should report an error to user in this scenario? Thanks, Peng
