Re: [RFC PATCH] crypto: crc32c-pclmul - Use pmovzxdq to shrink K_table

George Spelvin
2014-05-30T01:37:37Z

> This is odd. On my Ivy Bridge system the CPU speed from /proc/cpuinfo
> is at max freq once I set the performance governor.
> The numbers above almost look like
> the cpu frequency is fluctuating and an average is taken.
> What version of the kernel are you running? Is
> CONFIG_CPU_FREQ_GOV_PERFORMANCE compiled in?

Yes; I have

CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y

However scaling_available_governor only lists "performance powersave"

> Does /sys/devices/system/cpu/cpu?/cpufreq/scaling_cur_freq
> also changes?

That fine does not exist. However,
/sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq
exists and changes. Several snapshots:

Snap1 Snap2 Snap3 Snap4
cpu0 1255875 1255875 1255875 1255875
cpu1 1202750 1202750 1202750 1415250
cpu2 1680875 1255875 1468375 1468375
cpu3 1202750 1255875 1521500 1521500
cpu4 1946500 1255875 1255875 1255875
cpu5 2690250 2371500 1946500 1734000

> Can you check what are the available governors in your system
> and available frequencies?

> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance powersave
> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies: No such file or directory
$ ls /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus cpuinfo_transition_latency scaling_governor
cpuinfo_cur_freq related_cpus scaling_max_freq
cpuinfo_max_freq scaling_available_governors scaling_min_freq
cpuinfo_min_freq scaling_driver scaling_setspeed
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
<unsupported>

> If userspace governor is available, you can try set the governor
> to userspace, then pin frequency to 3400 MHz (assuming that's your
> max) with command like:

I'll have to recompile and reboot, but sure.

Do you want me to change from the intel_pstate driver while I'm at it?

> BTW, why do you place the K table in .text, instead of .rodata?

Because the jump table before it was in .text, and if I try to move
*that* to .rodata I get a linker error. So I just put the K_table
right next to it.

However, it's all moot: my current v3 does move K_table to .rodata.