Skip to content

Commit b84aa77

Browse files
committed
[PCI] The Machine Refresh event now probes controller again
1 parent 2950c94 commit b84aa77

12 files changed

Lines changed: 60 additions & 36 deletions

File tree

aarch64/corefreq-cli.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10814,6 +10814,11 @@ int Shortcut(SCANKEY *scan)
1081410814
case SCANKEY_AST:
1081510815
if (!RING_FULL(RW(Shm)->Ring[0])) {
1081610816
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_SYSUPDT);
10817+
10818+
RING_WRITE( RW(Shm)->Ring[0],
10819+
COREFREQ_IOCTL_MACHINE,
10820+
COREFREQ_TOGGLE_ON,
10821+
MACHINE_PCI_PROBING );
1081710822
}
1081810823
break;
1081910824

aarch64/corefreqk.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5300,21 +5300,21 @@ static long CoreFreqK_ioctl( struct file *filp,
53005300
Controller_Stop(1);
53015301
PUBLIC(RO(Proc))->Registration.Experimental = prm.dl.lo;
53025302
Controller_Start(1);
5303-
if (PUBLIC(RO(Proc))->Registration.Experimental)
5304-
{
5305-
if ( !PUBLIC(RO(Proc))->Registration.PCI ) {
5303+
rc = RC_SUCCESS;
5304+
break;
5305+
}
5306+
break;
5307+
5308+
case MACHINE_PCI_PROBING:
5309+
switch (prm.dl.lo)
5310+
{
5311+
case COREFREQ_TOGGLE_ON:
53065312
PUBLIC(RO(Proc))->Registration.PCI = \
53075313
CoreFreqK_ProbePCI(
53085314
Arch[PUBLIC(RO(Proc))->ArchID].PCI_ids,
53095315
CoreFreqK_ResetChip, CoreFreqK_AppendChip
53105316
) == 0;
53115317
rc = RC_OK_COMPUTE;
5312-
} else {
5313-
rc = RC_SUCCESS;
5314-
}
5315-
} else {
5316-
rc = RC_SUCCESS;
5317-
}
53185318
break;
53195319
}
53205320
break;

aarch64/coretypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,6 +1500,7 @@ enum {
15001500
MACHINE_INTERVAL,
15011501
MACHINE_AUTOCLOCK,
15021502
MACHINE_EXPERIMENTAL,
1503+
MACHINE_PCI_PROBING,
15031504
MACHINE_INTERRUPTS,
15041505
MACHINE_LIMIT_IDLE,
15051506
MACHINE_CPU_IDLE,

ppc64le/corefreq-cli.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10124,6 +10124,11 @@ int Shortcut(SCANKEY *scan)
1012410124
case SCANKEY_AST:
1012510125
if (!RING_FULL(RW(Shm)->Ring[0])) {
1012610126
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_SYSUPDT);
10127+
10128+
RING_WRITE( RW(Shm)->Ring[0],
10129+
COREFREQ_IOCTL_MACHINE,
10130+
COREFREQ_TOGGLE_ON,
10131+
MACHINE_PCI_PROBING );
1012710132
}
1012810133
break;
1012910134

ppc64le/corefreqk.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3351,21 +3351,21 @@ static long CoreFreqK_ioctl( struct file *filp,
33513351
Controller_Stop(1);
33523352
PUBLIC(RO(Proc))->Registration.Experimental = prm.dl.lo;
33533353
Controller_Start(1);
3354-
if (PUBLIC(RO(Proc))->Registration.Experimental)
3355-
{
3356-
if ( !PUBLIC(RO(Proc))->Registration.PCI ) {
3354+
rc = RC_SUCCESS;
3355+
break;
3356+
}
3357+
break;
3358+
3359+
case MACHINE_PCI_PROBING:
3360+
switch (prm.dl.lo)
3361+
{
3362+
case COREFREQ_TOGGLE_ON:
33573363
PUBLIC(RO(Proc))->Registration.PCI = \
33583364
CoreFreqK_ProbePCI(
33593365
Arch[PUBLIC(RO(Proc))->ArchID].PCI_ids,
33603366
CoreFreqK_ResetChip, CoreFreqK_AppendChip
33613367
) == 0;
33623368
rc = RC_OK_COMPUTE;
3363-
} else {
3364-
rc = RC_SUCCESS;
3365-
}
3366-
} else {
3367-
rc = RC_SUCCESS;
3368-
}
33693369
break;
33703370
}
33713371
break;

ppc64le/coretypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,6 +1236,7 @@ enum {
12361236
MACHINE_INTERVAL,
12371237
MACHINE_AUTOCLOCK,
12381238
MACHINE_EXPERIMENTAL,
1239+
MACHINE_PCI_PROBING,
12391240
MACHINE_INTERRUPTS,
12401241
MACHINE_LIMIT_IDLE,
12411242
MACHINE_CPU_IDLE,

riscv64/corefreq-cli.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10729,6 +10729,11 @@ int Shortcut(SCANKEY *scan)
1072910729
case SCANKEY_AST:
1073010730
if (!RING_FULL(RW(Shm)->Ring[0])) {
1073110731
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_SYSUPDT);
10732+
10733+
RING_WRITE( RW(Shm)->Ring[0],
10734+
COREFREQ_IOCTL_MACHINE,
10735+
COREFREQ_TOGGLE_ON,
10736+
MACHINE_PCI_PROBING );
1073210737
}
1073310738
break;
1073410739

riscv64/corefreqk.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,21 +3404,21 @@ static long CoreFreqK_ioctl( struct file *filp,
34043404
Controller_Stop(1);
34053405
PUBLIC(RO(Proc))->Registration.Experimental = prm.dl.lo;
34063406
Controller_Start(1);
3407-
if (PUBLIC(RO(Proc))->Registration.Experimental)
3408-
{
3409-
if ( !PUBLIC(RO(Proc))->Registration.PCI ) {
3407+
rc = RC_SUCCESS;
3408+
break;
3409+
}
3410+
break;
3411+
3412+
case MACHINE_PCI_PROBING:
3413+
switch (prm.dl.lo)
3414+
{
3415+
case COREFREQ_TOGGLE_ON:
34103416
PUBLIC(RO(Proc))->Registration.PCI = \
34113417
CoreFreqK_ProbePCI(
34123418
Arch[PUBLIC(RO(Proc))->ArchID].PCI_ids,
34133419
CoreFreqK_ResetChip, CoreFreqK_AppendChip
34143420
) == 0;
34153421
rc = RC_OK_COMPUTE;
3416-
} else {
3417-
rc = RC_SUCCESS;
3418-
}
3419-
} else {
3420-
rc = RC_SUCCESS;
3421-
}
34223422
break;
34233423
}
34243424
break;

riscv64/coretypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,6 +1400,7 @@ enum {
14001400
MACHINE_INTERVAL,
14011401
MACHINE_AUTOCLOCK,
14021402
MACHINE_EXPERIMENTAL,
1403+
MACHINE_PCI_PROBING,
14031404
MACHINE_INTERRUPTS,
14041405
MACHINE_LIMIT_IDLE,
14051406
MACHINE_CPU_IDLE,

x86_64/corefreq-cli.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13018,6 +13018,11 @@ int Shortcut(SCANKEY *scan)
1301813018
case SCANKEY_AST:
1301913019
if (!RING_FULL(RW(Shm)->Ring[0])) {
1302013020
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_SYSUPDT);
13021+
13022+
RING_WRITE( RW(Shm)->Ring[0],
13023+
COREFREQ_IOCTL_MACHINE,
13024+
COREFREQ_TOGGLE_ON,
13025+
MACHINE_PCI_PROBING );
1302113026
}
1302213027
break;
1302313028

0 commit comments

Comments
 (0)