Ottimizzazione bdver2 per moduli compilati con dkms

2 risposte [Ultimo contenuto]
Ritratto di frank67
frank67
(Monster)
Offline
Monster
Iscritto: 10/07/2013
Messaggi: 487

Ciao a tutti,
ho scritto questa patch per il Makefile del kernel:

--- arch/x86/Makefile   2019-03-06 16:38:38.932105408 +0100
+++ linux-source-4.9/arch/x86/Makefile  2019-03-06 16:44:50.811126032 +0100
@@ -57,7 +57,7 @@
 #
 #    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
 #
-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
+KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-sse3 -mno-sse4.1 -mno-sse4.2 -mno-sse4 -mno-sse4a -mno-ssse3 -mno-3dnow
 KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
 
 ifeq ($(CONFIG_X86_32),y)
@@ -123,7 +123,8 @@
        KBUILD_CFLAGS += $(call cc-option,-mskip-rax-setup)
 
         # FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
-        cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
+        cflags-$(CONFIG_MK8) += $(call cc-option,-march=bdver2) \
+               $(call cc-option,-mtune=bdver2,$(call cc-option,-mtune=generic))
         cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
 
         cflags-$(CONFIG_MCORE2) += \

come si vede oltre a eliminare le estensioni multimediali ottimizza il kernel e i suoi moduli per l'architettura Bulldozer 2 del mio processore AMD FX8350 (bdver2).
Quando compilo il kernel poi devo compilare anche i moduli proprietari della scheda video nvidia e di virtualbox, lo faccio dando i comandi:
~# dpkg-reconfigure -plow nvidia-kernel-dkms
~# dpkg-reconfigure -plow virtualbox-5.2

Vorrei che anche per questi moduli il compilatore usasse l'ottimizzazione bdver2, non penso sia semplice come lo è per il Linux kernel, qualcuno sa dirmi come fare?
Grazie per ogni risposta

Ciao, Franco

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Credo che la compilazione dei moduli, anche se fatta separatamente, usi comunque il Makefile principale passandogli solo un diverso argomento M=....

Ritratto di frank67
frank67
(Monster)
Offline
Monster
Iscritto: 10/07/2013
Messaggi: 487

mcortese ha scritto:

Credo che la compilazione dei moduli, anche se fatta separatamente, usi comunque il Makefile principale passandogli solo un diverso argomento M=....


Ma come fa DKMS a sapere che il Makefile del kernel da usare è sotto /home/nomeutente/linux-source-4.9/arch/x86/ ? Poi i sorgenti del kernel potrebbero essere decompressi all'interno di una qualsiasi directory della home directory ciò mi faceva pensare che DKMS usasse un suo Makefile, mi sbaglio?
Grazie per ogni risposta

Ciao, Franco