parent
df2556860f
commit
5d363a6e3b
@ -0,0 +1,104 @@
|
||||
# Calculate format=diff os_linux_system==desktop
|
||||
From 22ee35ec82fa543b65c1b6d516a086a21f723846 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Valente <paolo.valente@unimore.it>
|
||||
Date: Tue, 7 Apr 2015 13:39:12 +0200
|
||||
Subject: [PATCH 1/4] block: cgroups, kconfig, build bits for BFQ-v7r11-4.7.0
|
||||
|
||||
Update Kconfig.iosched and do the related Makefile changes to include
|
||||
kernel configuration options for BFQ. Also increase the number of
|
||||
policies supported by the blkio controller so that BFQ can add its
|
||||
own.
|
||||
|
||||
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
|
||||
Signed-off-by: Arianna Avanzini <avanzini@google.com>
|
||||
---
|
||||
block/Kconfig.iosched | 32 ++++++++++++++++++++++++++++++++
|
||||
block/Makefile | 1 +
|
||||
include/linux/blkdev.h | 2 +-
|
||||
3 files changed, 34 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
|
||||
index 421bef9..0ee5f0f 100644
|
||||
--- a/block/Kconfig.iosched
|
||||
+++ b/block/Kconfig.iosched
|
||||
@@ -39,6 +39,27 @@ config CFQ_GROUP_IOSCHED
|
||||
---help---
|
||||
Enable group IO scheduling in CFQ.
|
||||
|
||||
+config IOSCHED_BFQ
|
||||
+ tristate "BFQ I/O scheduler"
|
||||
+ default n
|
||||
+ ---help---
|
||||
+ The BFQ I/O scheduler tries to distribute bandwidth among
|
||||
+ all processes according to their weights.
|
||||
+ It aims at distributing the bandwidth as desired, independently of
|
||||
+ the disk parameters and with any workload. It also tries to
|
||||
+ guarantee low latency to interactive and soft real-time
|
||||
+ applications. If compiled built-in (saying Y here), BFQ can
|
||||
+ be configured to support hierarchical scheduling.
|
||||
+
|
||||
+config CGROUP_BFQIO
|
||||
+ bool "BFQ hierarchical scheduling support"
|
||||
+ depends on CGROUPS && IOSCHED_BFQ=y
|
||||
+ default n
|
||||
+ ---help---
|
||||
+ Enable hierarchical scheduling in BFQ, using the cgroups
|
||||
+ filesystem interface. The name of the subsystem will be
|
||||
+ bfqio.
|
||||
+
|
||||
choice
|
||||
prompt "Default I/O scheduler"
|
||||
default DEFAULT_CFQ
|
||||
@@ -52,6 +73,16 @@ choice
|
||||
config DEFAULT_CFQ
|
||||
bool "CFQ" if IOSCHED_CFQ=y
|
||||
|
||||
+ config DEFAULT_BFQ
|
||||
+ bool "BFQ" if IOSCHED_BFQ=y
|
||||
+ help
|
||||
+ Selects BFQ as the default I/O scheduler which will be
|
||||
+ used by default for all block devices.
|
||||
+ The BFQ I/O scheduler aims at distributing the bandwidth
|
||||
+ as desired, independently of the disk parameters and with
|
||||
+ any workload. It also tries to guarantee low latency to
|
||||
+ interactive and soft real-time applications.
|
||||
+
|
||||
config DEFAULT_NOOP
|
||||
bool "No-op"
|
||||
|
||||
@@ -61,6 +92,7 @@ config DEFAULT_IOSCHED
|
||||
string
|
||||
default "deadline" if DEFAULT_DEADLINE
|
||||
default "cfq" if DEFAULT_CFQ
|
||||
+ default "bfq" if DEFAULT_BFQ
|
||||
default "noop" if DEFAULT_NOOP
|
||||
|
||||
endmenu
|
||||
diff --git a/block/Makefile b/block/Makefile
|
||||
index 9eda232..4a36683 100644
|
||||
--- a/block/Makefile
|
||||
+++ b/block/Makefile
|
||||
@@ -18,6 +18,7 @@ obj-$(CONFIG_BLK_DEV_THROTTLING) += blk-throttle.o
|
||||
obj-$(CONFIG_IOSCHED_NOOP) += noop-iosched.o
|
||||
obj-$(CONFIG_IOSCHED_DEADLINE) += deadline-iosched.o
|
||||
obj-$(CONFIG_IOSCHED_CFQ) += cfq-iosched.o
|
||||
+obj-$(CONFIG_IOSCHED_BFQ) += bfq-iosched.o
|
||||
|
||||
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
|
||||
obj-$(CONFIG_BLK_CMDLINE_PARSER) += cmdline-parser.o
|
||||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
|
||||
index 3d9cf32..8d862a0 100644
|
||||
--- a/include/linux/blkdev.h
|
||||
+++ b/include/linux/blkdev.h
|
||||
@@ -45,7 +45,7 @@ struct pr_ops;
|
||||
* Maximum number of blkcg policies allowed to be registered concurrently.
|
||||
* Defined here to simplify include dependency.
|
||||
*/
|
||||
-#define BLKCG_MAX_POLS 2
|
||||
+#define BLKCG_MAX_POLS 3
|
||||
|
||||
struct request;
|
||||
typedef void (rq_end_io_fn)(struct request *, int);
|
||||
--
|
||||
1.9.1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,6 @@
|
||||
# Calculate format=kernel name=.config os_linux_system==desktop
|
||||
CONFIG_BFQ_GROUP_IOSCHED=y
|
||||
CONFIG_DEFAULT_BFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_IOSCHED="bfq"
|
||||
CONFIG_IOSCHED_BFQ=y
|
@ -0,0 +1 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.7&&merge(sys-kernel/calculate-sources)<4.8
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,362 @@
|
||||
# Calculate format=kernel name=.config os_linux_system==server
|
||||
# CONFIG_CYPRESS_FIRMWARE is not set
|
||||
# CONFIG_DRM_I810 is not set
|
||||
# CONFIG_DVB_TUNER_DIB0070 is not set
|
||||
# CONFIG_DVB_TUNER_DIB0090 is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
CONFIG_HZ=300
|
||||
CONFIG_HZ_300=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_UNLOCK=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK=y
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
|
||||
# CONFIG_MEDIA_CAMERA_SUPPORT is not set
|
||||
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
|
||||
# CONFIG_MEDIA_PCI_SUPPORT is not set
|
||||
# CONFIG_MEDIA_SDR_SUPPORT is not set
|
||||
# CONFIG_MEDIA_USB_SUPPORT is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_PREEMPT_NONE=y
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TTPCI_EEPROM is not set
|
||||
!CONFIG_DVB_AF9013=
|
||||
!CONFIG_DVB_AF9033=
|
||||
!CONFIG_DVB_AS102=
|
||||
!CONFIG_DVB_AS102_FE=
|
||||
!CONFIG_DVB_AU8522=
|
||||
!CONFIG_DVB_AU8522_DTV=
|
||||
!CONFIG_DVB_AU8522_V4L=
|
||||
!CONFIG_DVB_AV7110=
|
||||
!CONFIG_DVB_AV7110_IR=
|
||||
!CONFIG_DVB_AV7110_OSD=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_PCI=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_USB=
|
||||
!CONFIG_DVB_BCM3510=
|
||||
!CONFIG_DVB_BUDGET=
|
||||
!CONFIG_DVB_BUDGET_AV=
|
||||
!CONFIG_DVB_BUDGET_CORE=
|
||||
!CONFIG_DVB_BUDGET_PATCH=
|
||||
!CONFIG_DVB_CORE=
|
||||
!CONFIG_DVB_CX24116=
|
||||
!CONFIG_DVB_CX24120=
|
||||
!CONFIG_DVB_CX24123=
|
||||
!CONFIG_DVB_CXD2820R=
|
||||
!CONFIG_DVB_DDBRIDGE=
|
||||
!CONFIG_DVB_DRXK=
|
||||
!CONFIG_DVB_DYNAMIC_MINORS=
|
||||
!CONFIG_DVB_EC100=
|
||||
!CONFIG_DVB_FIREDTV=
|
||||
!CONFIG_DVB_ISL6405=
|
||||
!CONFIG_DVB_ISL6421=
|
||||
!CONFIG_DVB_ISL6423=
|
||||
!CONFIG_DVB_L64781=
|
||||
!CONFIG_DVB_LG2160=
|
||||
!CONFIG_DVB_LGDT3305=
|
||||
!CONFIG_DVB_LGDT330X=
|
||||
!CONFIG_DVB_LNBP21=
|
||||
!CONFIG_DVB_M88DS3103=
|
||||
!CONFIG_DVB_MAX_ADAPTERS=
|
||||
!CONFIG_DVB_MT312=
|
||||
!CONFIG_DVB_MT352=
|
||||
!CONFIG_DVB_NET=
|
||||
!CONFIG_DVB_NGENE=
|
||||
!CONFIG_DVB_NXT200X=
|
||||
!CONFIG_DVB_PLATFORM_DRIVERS=
|
||||
!CONFIG_DVB_PLL=
|
||||
!CONFIG_DVB_PLUTO2=
|
||||
!CONFIG_DVB_PT1=
|
||||
!CONFIG_DVB_PT3=
|
||||
!CONFIG_DVB_RTL2830=
|
||||
!CONFIG_DVB_RTL2832=
|
||||
!CONFIG_DVB_RTL2832_SDR=
|
||||
!CONFIG_DVB_S5H1409=
|
||||
!CONFIG_DVB_S5H1411=
|
||||
!CONFIG_DVB_S5H1420=
|
||||
!CONFIG_DVB_SI2168=
|
||||
!CONFIG_DVB_SP2=
|
||||
!CONFIG_DVB_SP8870=
|
||||
!CONFIG_DVB_STB0899=
|
||||
!CONFIG_DVB_STV0297=
|
||||
!CONFIG_DVB_STV0299=
|
||||
!CONFIG_DVB_STV0900=
|
||||
!CONFIG_DVB_STV090x=
|
||||
!CONFIG_DVB_STV6110=
|
||||
!CONFIG_DVB_STV6110x=
|
||||
!CONFIG_DVB_TC90522=
|
||||
!CONFIG_DVB_TDA10021=
|
||||
!CONFIG_DVB_TDA10023=
|
||||
!CONFIG_DVB_TDA10048=
|
||||
!CONFIG_DVB_TDA1004X=
|
||||
!CONFIG_DVB_TDA10086=
|
||||
!CONFIG_DVB_TDA18271C2DD=
|
||||
!CONFIG_DVB_TDA8083=
|
||||
!CONFIG_DVB_TDA8261=
|
||||
!CONFIG_DVB_TDA826X=
|
||||
!CONFIG_DVB_TS2020=
|
||||
!CONFIG_DVB_TTUSB_BUDGET=
|
||||
!CONFIG_DVB_TTUSB_DEC=
|
||||
!CONFIG_DVB_TUA6100=
|
||||
!CONFIG_DVB_TUNER_CX24113=
|
||||
!CONFIG_DVB_TUNER_ITD1000=
|
||||
!CONFIG_DVB_USB_AF9015=
|
||||
!CONFIG_DVB_USB_AF9035=
|
||||
!CONFIG_DVB_USB_ANYSEE=
|
||||
!CONFIG_DVB_USB_AU6610=
|
||||
!CONFIG_DVB_USB_AZ6007=
|
||||
!CONFIG_DVB_USB_CE6230=
|
||||
!CONFIG_DVB_USB_DVBSKY=
|
||||
!CONFIG_DVB_USB_EC168=
|
||||
!CONFIG_DVB_USB_GL861=
|
||||
!CONFIG_DVB_USB_MXL111SF=
|
||||
!CONFIG_DVB_USB_RTL28XXU=
|
||||
!CONFIG_DVB_USB_V2=
|
||||
!CONFIG_DVB_VES1820=
|
||||
!CONFIG_DVB_VES1X93=
|
||||
!CONFIG_DVB_ZL10036=
|
||||
!CONFIG_DVB_ZL10039=
|
||||
!CONFIG_DVB_ZL10353=
|
||||
!CONFIG_FRAME_VECTOR=
|
||||
!CONFIG_JOYSTICK_A3D=
|
||||
!CONFIG_JOYSTICK_ADI=
|
||||
!CONFIG_JOYSTICK_ANALOG=
|
||||
!CONFIG_JOYSTICK_AS5011=
|
||||
!CONFIG_JOYSTICK_COBRA=
|
||||
!CONFIG_JOYSTICK_DB9=
|
||||
!CONFIG_JOYSTICK_GAMECON=
|
||||
!CONFIG_JOYSTICK_GF2K=
|
||||
!CONFIG_JOYSTICK_GRIP=
|
||||
!CONFIG_JOYSTICK_GRIP_MP=
|
||||
!CONFIG_JOYSTICK_GUILLEMOT=
|
||||
!CONFIG_JOYSTICK_IFORCE=
|
||||
!CONFIG_JOYSTICK_IFORCE_232=
|
||||
!CONFIG_JOYSTICK_IFORCE_USB=
|
||||
!CONFIG_JOYSTICK_INTERACT=
|
||||
!CONFIG_JOYSTICK_JOYDUMP=
|
||||
!CONFIG_JOYSTICK_MAGELLAN=
|
||||
!CONFIG_JOYSTICK_SIDEWINDER=
|
||||
!CONFIG_JOYSTICK_SPACEBALL=
|
||||
!CONFIG_JOYSTICK_SPACEORB=
|
||||
!CONFIG_JOYSTICK_STINGER=
|
||||
!CONFIG_JOYSTICK_TMDC=
|
||||
!CONFIG_JOYSTICK_TURBOGRAFX=
|
||||
!CONFIG_JOYSTICK_TWIDJOY=
|
||||
!CONFIG_JOYSTICK_WALKERA0701=
|
||||
!CONFIG_JOYSTICK_WARRIOR=
|
||||
!CONFIG_JOYSTICK_XPAD=
|
||||
!CONFIG_JOYSTICK_XPAD_FF=
|
||||
!CONFIG_JOYSTICK_XPAD_LEDS=
|
||||
!CONFIG_JOYSTICK_ZHENHUA=
|
||||
!CONFIG_MAC_EMUMOUSEBTN=
|
||||
!CONFIG_MEDIA_ATTACH=
|
||||
!CONFIG_MEDIA_COMMON_OPTIONS=
|
||||
!CONFIG_MEDIA_CONTROLLER=
|
||||
!CONFIG_MEDIA_SUBDRV_AUTOSELECT=
|
||||
!CONFIG_MEDIA_TUNER=
|
||||
!CONFIG_MEDIA_TUNER_E4000=
|
||||
!CONFIG_MEDIA_TUNER_FC0011=
|
||||
!CONFIG_MEDIA_TUNER_FC0012=
|
||||
!CONFIG_MEDIA_TUNER_FC0013=
|
||||
!CONFIG_MEDIA_TUNER_FC2580=
|
||||
!CONFIG_MEDIA_TUNER_IT913X=
|
||||
!CONFIG_MEDIA_TUNER_MC44S803=
|
||||
!CONFIG_MEDIA_TUNER_MT2060=
|
||||
!CONFIG_MEDIA_TUNER_MT2063=
|
||||
!CONFIG_MEDIA_TUNER_MT20XX=
|
||||
!CONFIG_MEDIA_TUNER_MT2131=
|
||||
!CONFIG_MEDIA_TUNER_MXL301RF=
|
||||
!CONFIG_MEDIA_TUNER_MXL5005S=
|
||||
!CONFIG_MEDIA_TUNER_MXL5007T=
|
||||
!CONFIG_MEDIA_TUNER_QM1D1C0042=
|
||||
!CONFIG_MEDIA_TUNER_QT1010=
|
||||
!CONFIG_MEDIA_TUNER_R820T=
|
||||
!CONFIG_MEDIA_TUNER_SI2157=
|
||||
!CONFIG_MEDIA_TUNER_SIMPLE=
|
||||
!CONFIG_MEDIA_TUNER_TDA18212=
|
||||
!CONFIG_MEDIA_TUNER_TDA18218=
|
||||
!CONFIG_MEDIA_TUNER_TDA18271=
|
||||
!CONFIG_MEDIA_TUNER_TDA827X=
|
||||
!CONFIG_MEDIA_TUNER_TDA8290=
|
||||
!CONFIG_MEDIA_TUNER_TDA9887=
|
||||
!CONFIG_MEDIA_TUNER_TUA9001=
|
||||
!CONFIG_MEDIA_TUNER_XC2028=
|
||||
!CONFIG_MEDIA_TUNER_XC4000=
|
||||
!CONFIG_MEDIA_TUNER_XC5000=
|
||||
!CONFIG_PREEMPT_COUNT=
|
||||
!CONFIG_PREEMPT_RCU=
|
||||
!CONFIG_SMS_SDIO_DRV=
|
||||
!CONFIG_SMS_SIANO_MDTV=
|
||||
!CONFIG_SMS_USB_DRV=
|
||||
!CONFIG_TABLET_SERIAL_WACOM4=
|
||||
!CONFIG_TABLET_USB_ACECAD=
|
||||
!CONFIG_TABLET_USB_AIPTEK=
|
||||
!CONFIG_TABLET_USB_GTCO=
|
||||
!CONFIG_TABLET_USB_HANWANG=
|
||||
!CONFIG_TABLET_USB_KBTAB=
|
||||
!CONFIG_UNINLINE_SPIN_UNLOCK=
|
||||
!CONFIG_USB_AIRSPY=
|
||||
!CONFIG_USB_CONFIGFS_F_UVC=
|
||||
!CONFIG_USB_GL860=
|
||||
!CONFIG_USB_GSPCA=
|
||||
!CONFIG_USB_GSPCA_BENQ=
|
||||
!CONFIG_USB_GSPCA_CONEX=
|
||||
!CONFIG_USB_GSPCA_CPIA1=
|
||||
!CONFIG_USB_GSPCA_DTCS033=
|
||||
!CONFIG_USB_GSPCA_ETOMS=
|
||||
!CONFIG_USB_GSPCA_FINEPIX=
|
||||
!CONFIG_USB_GSPCA_JEILINJ=
|
||||
!CONFIG_USB_GSPCA_JL2005BCD=
|
||||
!CONFIG_USB_GSPCA_KINECT=
|
||||
!CONFIG_USB_GSPCA_KONICA=
|
||||
!CONFIG_USB_GSPCA_MARS=
|
||||
!CONFIG_USB_GSPCA_MR97310A=
|
||||
!CONFIG_USB_GSPCA_NW80X=
|
||||
!CONFIG_USB_GSPCA_OV519=
|
||||
!CONFIG_USB_GSPCA_OV534=
|
||||
!CONFIG_USB_GSPCA_OV534_9=
|
||||
!CONFIG_USB_GSPCA_PAC207=
|
||||
!CONFIG_USB_GSPCA_PAC7302=
|
||||
!CONFIG_USB_GSPCA_PAC7311=
|
||||
!CONFIG_USB_GSPCA_SE401=
|
||||
!CONFIG_USB_GSPCA_SN9C2028=
|
||||
!CONFIG_USB_GSPCA_SN9C20X=
|
||||
!CONFIG_USB_GSPCA_SONIXB=
|
||||
!CONFIG_USB_GSPCA_SONIXJ=
|
||||
!CONFIG_USB_GSPCA_SPCA1528=
|
||||
!CONFIG_USB_GSPCA_SPCA500=
|
||||
!CONFIG_USB_GSPCA_SPCA501=
|
||||
!CONFIG_USB_GSPCA_SPCA505=
|
||||
!CONFIG_USB_GSPCA_SPCA506=
|
||||
!CONFIG_USB_GSPCA_SPCA508=
|
||||
!CONFIG_USB_GSPCA_SPCA561=
|
||||
!CONFIG_USB_GSPCA_SQ905=
|
||||
!CONFIG_USB_GSPCA_SQ905C=
|
||||
!CONFIG_USB_GSPCA_SQ930X=
|
||||
!CONFIG_USB_GSPCA_STK014=
|
||||
!CONFIG_USB_GSPCA_STK1135=
|
||||
!CONFIG_USB_GSPCA_STV0680=
|
||||
!CONFIG_USB_GSPCA_SUNPLUS=
|
||||
!CONFIG_USB_GSPCA_T613=
|
||||
!CONFIG_USB_GSPCA_TOPRO=
|
||||
!CONFIG_USB_GSPCA_TOUPTEK=
|
||||
!CONFIG_USB_GSPCA_TV8532=
|
||||
!CONFIG_USB_GSPCA_VC032X=
|
||||
!CONFIG_USB_GSPCA_VICAM=
|
||||
!CONFIG_USB_GSPCA_XIRLINK_CIT=
|
||||
!CONFIG_USB_GSPCA_ZC3XX=
|
||||
!CONFIG_USB_HACKRF=
|
||||
!CONFIG_USB_M5602=
|
||||
!CONFIG_USB_PWC=
|
||||
!CONFIG_USB_PWC_DEBUG=
|
||||
!CONFIG_USB_PWC_INPUT_EVDEV=
|
||||
!CONFIG_USB_S2255=
|
||||
!CONFIG_USB_STKWEBCAM=
|
||||
!CONFIG_USB_STV06XX=
|
||||
!CONFIG_USB_VIDEO_CLASS=
|
||||
!CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=
|
||||
!CONFIG_USB_ZR364XX=
|
||||
!CONFIG_V4L_MEM2MEM_DRIVERS=
|
||||
!CONFIG_V4L_PLATFORM_DRIVERS=
|
||||
!CONFIG_V4L_TEST_DRIVERS=
|
||||
!CONFIG_VIDEO_ADV7170=
|
||||
!CONFIG_VIDEO_ADV7175=
|
||||
!CONFIG_VIDEO_AU0828=
|
||||
!CONFIG_VIDEO_AU0828_V4L2=
|
||||
!CONFIG_VIDEO_BT819=
|
||||
!CONFIG_VIDEO_BT856=
|
||||
!CONFIG_VIDEO_BT866=
|
||||
!CONFIG_VIDEOBUF2_CORE=
|
||||
!CONFIG_VIDEOBUF2_DMA_CONTIG=
|
||||
!CONFIG_VIDEOBUF2_DMA_SG=
|
||||
!CONFIG_VIDEOBUF2_DVB=
|
||||
!CONFIG_VIDEOBUF2_MEMOPS=
|
||||
!CONFIG_VIDEOBUF2_VMALLOC=
|
||||
!CONFIG_VIDEOBUF_DMA_SG=
|
||||
!CONFIG_VIDEOBUF_GEN=
|
||||
!CONFIG_VIDEOBUF_VMALLOC=
|
||||
!CONFIG_VIDEO_CPIA2=
|
||||
!CONFIG_VIDEO_CS53L32A=
|
||||
!CONFIG_VIDEO_CX2341X=
|
||||
!CONFIG_VIDEO_CX25821=
|
||||
!CONFIG_VIDEO_CX25821_ALSA=
|
||||
!CONFIG_VIDEO_CX25840=
|
||||
!CONFIG_VIDEO_DEV=
|
||||
!CONFIG_VIDEO_DT3155=
|
||||
!CONFIG_VIDEO_EM28XX=
|
||||
!CONFIG_VIDEO_EM28XX_ALSA=
|
||||
!CONFIG_VIDEO_EM28XX_DVB=
|
||||
!CONFIG_VIDEO_EM28XX_V4L2=
|
||||
!CONFIG_VIDEO_GO7007=
|
||||
!CONFIG_VIDEO_GO7007_LOADER=
|
||||
!CONFIG_VIDEO_GO7007_USB=
|
||||
!CONFIG_VIDEO_GO7007_USB_S2250_BOARD=
|
||||
!CONFIG_VIDEO_HDPVR=
|
||||
!CONFIG_VIDEO_HEXIUM_GEMINI=
|
||||
!CONFIG_VIDEO_HEXIUM_ORION=
|
||||
!CONFIG_VIDEO_KS0127=
|
||||
!CONFIG_VIDEO_MEYE=
|
||||
!CONFIG_VIDEO_MSP3400=
|
||||
!CONFIG_VIDEO_MT9V011=
|
||||
!CONFIG_VIDEO_MXB=
|
||||
!CONFIG_VIDEO_OV7640=
|
||||
!CONFIG_VIDEO_PVRUSB2=
|
||||
!CONFIG_VIDEO_PVRUSB2_DEBUGIFC=
|
||||
!CONFIG_VIDEO_PVRUSB2_DVB=
|
||||
!CONFIG_VIDEO_PVRUSB2_SYSFS=
|
||||
!CONFIG_VIDEO_SAA6588=
|
||||
!CONFIG_VIDEO_SAA6752HS=
|
||||
!CONFIG_VIDEO_SAA7110=
|
||||
!CONFIG_VIDEO_SAA711X=
|
||||
!CONFIG_VIDEO_SAA7134=
|
||||
!CONFIG_VIDEO_SAA7134_ALSA=
|
||||
!CONFIG_VIDEO_SAA7134_DVB=
|
||||
!CONFIG_VIDEO_SAA7134_GO7007=
|
||||
!CONFIG_VIDEO_SAA7146=
|
||||
!CONFIG_VIDEO_SAA7146_VV=
|
||||
!CONFIG_VIDEO_SAA7164=
|
||||
!CONFIG_VIDEO_SAA7185=
|
||||
!CONFIG_VIDEO_SOLO6X10=
|
||||
!CONFIG_VIDEO_SONY_BTF_MPX=
|
||||
!CONFIG_VIDEO_STK1160=
|
||||
!CONFIG_VIDEO_STK1160_AC97=
|
||||
!CONFIG_VIDEO_STK1160_COMMON=
|
||||
!CONFIG_VIDEO_TDA9840=
|
||||
!CONFIG_VIDEO_TEA6415C=
|
||||
!CONFIG_VIDEO_TEA6420=
|
||||
!CONFIG_VIDEO_TUNER=
|
||||
!CONFIG_VIDEO_TVEEPROM=
|
||||
!CONFIG_VIDEO_TVP5150=
|
||||
!CONFIG_VIDEO_TW2804=
|
||||
!CONFIG_VIDEO_TW68=
|
||||
!CONFIG_VIDEO_TW9903=
|
||||
!CONFIG_VIDEO_TW9906=
|
||||
!CONFIG_VIDEO_UDA1342=
|
||||
!CONFIG_VIDEO_USBTV=
|
||||
!CONFIG_VIDEO_USBVISION=
|
||||
!CONFIG_VIDEO_V4L2=
|
||||
!CONFIG_VIDEO_VPX3220=
|
||||
!CONFIG_VIDEO_WM8775=
|
||||
!CONFIG_VIDEO_ZORAN=
|
||||
!CONFIG_VIDEO_ZORAN_AVS6EYES=
|
||||
!CONFIG_VIDEO_ZORAN_BUZ=
|
||||
!CONFIG_VIDEO_ZORAN_DC10=
|
||||
!CONFIG_VIDEO_ZORAN_DC30=
|
||||
!CONFIG_VIDEO_ZORAN_LML33=
|
||||
!CONFIG_VIDEO_ZORAN_LML33R10=
|
||||
!CONFIG_VIDEO_ZORAN_ZR36060=
|
||||
!CONFIG_DVB_A8293=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG=
|
||||
!CONFIG_DVB_CX22700=
|
||||
!CONFIG_DVB_DRX39XYJ=
|
||||
!CONFIG_DVB_DRXD=
|
||||
!CONFIG_DVB_MB86A20S=
|
||||
!CONFIG_DVB_S921=
|
||||
!CONFIG_DVB_TDA10071=
|
||||
!CONFIG_SMS_SIANO_DEBUGFS=
|
||||
!CONFIG_USB_G_WEBCAM=
|
@ -0,0 +1,388 @@
|
||||
# Calculate format=diff pkg(sys-devel/gcc)>=4.9
|
||||
WARNING - this version of the patch works with version 4.9+ of gcc and with
|
||||
kernel version 3.15.x+ and should NOT be applied when compiling on older
|
||||
versions due to name changes of the flags with the 4.9 release of gcc.
|
||||
Use the older version of this patch hosted on the same github for older
|
||||
versions of gcc. For example:
|
||||
|
||||
corei7 --> nehalem
|
||||
corei7-avx --> sandybridge
|
||||
core-avx-i --> ivybridge
|
||||
core-avx2 --> haswell
|
||||
|
||||
For more, see: https://gcc.gnu.org/gcc-4.9/changes.html
|
||||
|
||||
It also changes 'atom' to 'bonnell' in accordance with the gcc v4.9 changes.
|
||||
Note that upstream is using the deprecated 'match=atom' flags when I believe it
|
||||
should use the newer 'march=bonnell' flag for atom processors.
|
||||
|
||||
I have made that change to this patch set as well. See the following kernel
|
||||
bug report to see if I'm right: https://bugzilla.kernel.org/show_bug.cgi?id=77461
|
||||
|
||||
This patch will expand the number of microarchitectures to include new
|
||||
processors including: AMD K10-family, AMD Family 10h (Barcelona), AMD Family
|
||||
14h (Bobcat), AMD Family 15h (Bulldozer), AMD Family 15h (Piledriver), AMD
|
||||
Family 16h (Jaguar), Intel 1st Gen Core i3/i5/i7 (Nehalem), Intel 1.5 Gen Core
|
||||
i3/i5/i7 (Westmere), Intel 2nd Gen Core i3/i5/i7 (Sandybridge), Intel 3rd Gen
|
||||
Core i3/i5/i7 (Ivybridge), Intel 4th Gen Core i3/i5/i7 (Haswell), and Intel 5th
|
||||
Gen Core i3/i5/i7 (Broadwell). It also offers the compiler the 'native' flag.
|
||||
|
||||
Small but real speed increases are measurable using a make endpoint comparing
|
||||
a generic kernel to one built with one of the respective microarchs.
|
||||
|
||||
See the following experimental evidence supporting this statement:
|
||||
https://github.com/graysky2/kernel_gcc_patch
|
||||
|
||||
REQUIREMENTS
|
||||
linux version >=3.15
|
||||
gcc version >=4.9
|
||||
|
||||
--- a/arch/x86/include/asm/module.h 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/include/asm/module.h 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -15,6 +15,20 @@
|
||||
#define MODULE_PROC_FAMILY "586MMX "
|
||||
#elif defined CONFIG_MCORE2
|
||||
#define MODULE_PROC_FAMILY "CORE2 "
|
||||
+#elif defined CONFIG_MNATIVE
|
||||
+#define MODULE_PROC_FAMILY "NATIVE "
|
||||
+#elif defined CONFIG_MNEHALEM
|
||||
+#define MODULE_PROC_FAMILY "NEHALEM "
|
||||
+#elif defined CONFIG_MWESTMERE
|
||||
+#define MODULE_PROC_FAMILY "WESTMERE "
|
||||
+#elif defined CONFIG_MSANDYBRIDGE
|
||||
+#define MODULE_PROC_FAMILY "SANDYBRIDGE "
|
||||
+#elif defined CONFIG_MIVYBRIDGE
|
||||
+#define MODULE_PROC_FAMILY "IVYBRIDGE "
|
||||
+#elif defined CONFIG_MHASWELL
|
||||
+#define MODULE_PROC_FAMILY "HASWELL "
|
||||
+#elif defined CONFIG_MBROADWELL
|
||||
+#define MODULE_PROC_FAMILY "BROADWELL "
|
||||
#elif defined CONFIG_MATOM
|
||||
#define MODULE_PROC_FAMILY "ATOM "
|
||||
#elif defined CONFIG_M686
|
||||
@@ -33,6 +47,20 @@
|
||||
#define MODULE_PROC_FAMILY "K7 "
|
||||
#elif defined CONFIG_MK8
|
||||
#define MODULE_PROC_FAMILY "K8 "
|
||||
+#elif defined CONFIG_MK8SSE3
|
||||
+#define MODULE_PROC_FAMILY "K8SSE3 "
|
||||
+#elif defined CONFIG_MK10
|
||||
+#define MODULE_PROC_FAMILY "K10 "
|
||||
+#elif defined CONFIG_MBARCELONA
|
||||
+#define MODULE_PROC_FAMILY "BARCELONA "
|
||||
+#elif defined CONFIG_MBOBCAT
|
||||
+#define MODULE_PROC_FAMILY "BOBCAT "
|
||||
+#elif defined CONFIG_MBULLDOZER
|
||||
+#define MODULE_PROC_FAMILY "BULLDOZER "
|
||||
+#elif defined CONFIG_MPILEDRIVER
|
||||
+#define MODULE_PROC_FAMILY "PILEDRIVER "
|
||||
+#elif defined CONFIG_MJAGUAR
|
||||
+#define MODULE_PROC_FAMILY "JAGUAR "
|
||||
#elif defined CONFIG_MELAN
|
||||
#define MODULE_PROC_FAMILY "ELAN "
|
||||
#elif defined CONFIG_MCRUSOE
|
||||
--- a/arch/x86/Kconfig.cpu 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Kconfig.cpu 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -137,9 +137,8 @@ config MPENTIUM4
|
||||
-Paxville
|
||||
-Dempsey
|
||||
|
||||
-
|
||||
config MK6
|
||||
- bool "K6/K6-II/K6-III"
|
||||
+ bool "AMD K6/K6-II/K6-III"
|
||||
depends on X86_32
|
||||
---help---
|
||||
Select this for an AMD K6-family processor. Enables use of
|
||||
@@ -147,7 +146,7 @@ config MK6
|
||||
flags to GCC.
|
||||
|
||||
config MK7
|
||||
- bool "Athlon/Duron/K7"
|
||||
+ bool "AMD Athlon/Duron/K7"
|
||||
depends on X86_32
|
||||
---help---
|
||||
Select this for an AMD Athlon K7-family processor. Enables use of
|
||||
@@ -155,12 +154,62 @@ config MK7
|
||||
flags to GCC.
|
||||
|
||||
config MK8
|
||||
- bool "Opteron/Athlon64/Hammer/K8"
|
||||
+ bool "AMD Opteron/Athlon64/Hammer/K8"
|
||||
---help---
|
||||
Select this for an AMD Opteron or Athlon64 Hammer-family processor.
|
||||
Enables use of some extended instructions, and passes appropriate
|
||||
optimization flags to GCC.
|
||||
|
||||
+config MK8SSE3
|
||||
+ bool "AMD Opteron/Athlon64/Hammer/K8 with SSE3"
|
||||
+ ---help---
|
||||
+ Select this for improved AMD Opteron or Athlon64 Hammer-family processors.
|
||||
+ Enables use of some extended instructions, and passes appropriate
|
||||
+ optimization flags to GCC.
|
||||
+
|
||||
+config MK10
|
||||
+ bool "AMD 61xx/7x50/PhenomX3/X4/II/K10"
|
||||
+ ---help---
|
||||
+ Select this for an AMD 61xx Eight-Core Magny-Cours, Athlon X2 7x50,
|
||||
+ Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.
|
||||
+ Enables use of some extended instructions, and passes appropriate
|
||||
+ optimization flags to GCC.
|
||||
+
|
||||
+config MBARCELONA
|
||||
+ bool "AMD Barcelona"
|
||||
+ ---help---
|
||||
+ Select this for AMD Barcelona and newer processors.
|
||||
+
|
||||
+ Enables -march=barcelona
|
||||
+
|
||||
+config MBOBCAT
|
||||
+ bool "AMD Bobcat"
|
||||
+ ---help---
|
||||
+ Select this for AMD Bobcat processors.
|
||||
+
|
||||
+ Enables -march=btver1
|
||||
+
|
||||
+config MBULLDOZER
|
||||
+ bool "AMD Bulldozer"
|
||||
+ ---help---
|
||||
+ Select this for AMD Bulldozer processors.
|
||||
+
|
||||
+ Enables -march=bdver1
|
||||
+
|
||||
+config MPILEDRIVER
|
||||
+ bool "AMD Piledriver"
|
||||
+ ---help---
|
||||
+ Select this for AMD Piledriver processors.
|
||||
+
|
||||
+ Enables -march=bdver2
|
||||
+
|
||||
+config MJAGUAR
|
||||
+ bool "AMD Jaguar"
|
||||
+ ---help---
|
||||
+ Select this for AMD Jaguar processors.
|
||||
+
|
||||
+ Enables -march=btver2
|
||||
+
|
||||
config MCRUSOE
|
||||
bool "Crusoe"
|
||||
depends on X86_32
|
||||
@@ -251,8 +300,17 @@ config MPSC
|
||||
using the cpu family field
|
||||
in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
|
||||
|
||||
+config MATOM
|
||||
+ bool "Intel Atom"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for the Intel Atom platform. Intel Atom CPUs have an
|
||||
+ in-order pipelining architecture and thus can benefit from
|
||||
+ accordingly optimized code. Use a recent GCC with specific Atom
|
||||
+ support in order to fully benefit from selecting this option.
|
||||
+
|
||||
config MCORE2
|
||||
- bool "Core 2/newer Xeon"
|
||||
+ bool "Intel Core 2"
|
||||
---help---
|
||||
|
||||
Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
|
||||
@@ -260,14 +318,55 @@ config MCORE2
|
||||
family in /proc/cpuinfo. Newer ones have 6 and older ones 15
|
||||
(not a typo)
|
||||
|
||||
-config MATOM
|
||||
- bool "Intel Atom"
|
||||
+ Enables -march=core2
|
||||
+
|
||||
+config MNEHALEM
|
||||
+ bool "Intel Nehalem"
|
||||
---help---
|
||||
|
||||
- Select this for the Intel Atom platform. Intel Atom CPUs have an
|
||||
- in-order pipelining architecture and thus can benefit from
|
||||
- accordingly optimized code. Use a recent GCC with specific Atom
|
||||
- support in order to fully benefit from selecting this option.
|
||||
+ Select this for 1st Gen Core processors in the Nehalem family.
|
||||
+
|
||||
+ Enables -march=nehalem
|
||||
+
|
||||
+config MWESTMERE
|
||||
+ bool "Intel Westmere"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for the Intel Westmere formerly Nehalem-C family.
|
||||
+
|
||||
+ Enables -march=westmere
|
||||
+
|
||||
+config MSANDYBRIDGE
|
||||
+ bool "Intel Sandy Bridge"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 2nd Gen Core processors in the Sandy Bridge family.
|
||||
+
|
||||
+ Enables -march=sandybridge
|
||||
+
|
||||
+config MIVYBRIDGE
|
||||
+ bool "Intel Ivy Bridge"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 3rd Gen Core processors in the Ivy Bridge family.
|
||||
+
|
||||
+ Enables -march=ivybridge
|
||||
+
|
||||
+config MHASWELL
|
||||
+ bool "Intel Haswell"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 4th Gen Core processors in the Haswell family.
|
||||
+
|
||||
+ Enables -march=haswell
|
||||
+
|
||||
+config MBROADWELL
|
||||
+ bool "Intel Broadwell"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 5th Gen Core processors in the Broadwell family.
|
||||
+
|
||||
+ Enables -march=broadwell
|
||||
|
||||
config GENERIC_CPU
|
||||
bool "Generic-x86-64"
|
||||
@@ -276,6 +375,19 @@ config GENERIC_CPU
|
||||
Generic x86-64 CPU.
|
||||
Run equally well on all x86-64 CPUs.
|
||||
|
||||
+config MNATIVE
|
||||
+ bool "Native optimizations autodetected by GCC"
|
||||
+ ---help---
|
||||
+
|
||||
+ GCC 4.2 and above support -march=native, which automatically detects
|
||||
+ the optimum settings to use based on your processor. -march=native
|
||||
+ also detects and applies additional settings beyond -march specific
|
||||
+ to your CPU, (eg. -msse4). Unless you have a specific reason not to
|
||||
+ (e.g. distcc cross-compiling), you should probably be using
|
||||
+ -march=native rather than anything listed below.
|
||||
+
|
||||
+ Enables -march=native
|
||||
+
|
||||
endchoice
|
||||
|
||||
config X86_GENERIC
|
||||
@@ -300,7 +412,7 @@ config X86_INTERNODE_CACHE_SHIFT
|
||||
config X86_L1_CACHE_SHIFT
|
||||
int
|
||||
default "7" if MPENTIUM4 || MPSC
|
||||
- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
||||
+ default "6" if MK7 || MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MBULLDOZER || MPILEDRIVER || MJAGUAR || MPENTIUMM || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || BROADWELL || MNATIVE || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
||||
default "4" if MELAN || M486 || MGEODEGX1
|
||||
default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
|
||||
|
||||
@@ -331,11 +443,11 @@ config X86_ALIGNMENT_16
|
||||
|
||||
config X86_INTEL_USERCOPY
|
||||
def_bool y
|
||||
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
|
||||
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK8SSE3 || MK7 || MEFFICEON || MCORE2 || MK10 || MBARCELONA || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MNATIVE
|
||||
|
||||
config X86_USE_PPRO_CHECKSUM
|
||||
def_bool y
|
||||
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
|
||||
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MK10 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MK8SSE3 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MATOM || MNATIVE
|
||||
|
||||
config X86_USE_3DNOW
|
||||
def_bool y
|
||||
@@ -359,17 +471,17 @@ config X86_P6_NOP
|
||||
|
||||
config X86_TSC
|
||||
def_bool y
|
||||
- depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64
|
||||
+ depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MK8SSE3 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MNATIVE || MATOM) || X86_64
|
||||
|
||||
config X86_CMPXCHG64
|
||||
def_bool y
|
||||
- depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM
|
||||
+ depends on X86_PAE || X86_64 || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM || MNATIVE
|
||||
|
||||
# this should be set for all -march=.. options where the compiler
|
||||
# generates cmov.
|
||||
config X86_CMOV
|
||||
def_bool y
|
||||
- depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
|
||||
+ depends on (MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MBULLDOZER || MPILEDRIVER || MJAGUAR || MK7 || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MNATIVE || MATOM || MGEODE_LX)
|
||||
|
||||
config X86_MINIMUM_CPU_FAMILY
|
||||
int
|
||||
--- a/arch/x86/Makefile 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Makefile 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -92,13 +92,33 @@ else
|
||||
KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=3)
|
||||
|
||||
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
|
||||
+ cflags-$(CONFIG_MNATIVE) += $(call cc-option,-march=native)
|
||||
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
|
||||
+ cflags-$(CONFIG_MK8SSE3) += $(call cc-option,-march=k8-sse3,-mtune=k8)
|
||||
+ cflags-$(CONFIG_MK10) += $(call cc-option,-march=amdfam10)
|
||||
+ cflags-$(CONFIG_MBARCELONA) += $(call cc-option,-march=barcelona)
|
||||
+ cflags-$(CONFIG_MBOBCAT) += $(call cc-option,-march=btver1)
|
||||
+ cflags-$(CONFIG_MBULLDOZER) += $(call cc-option,-march=bdver1)
|
||||
+ cflags-$(CONFIG_MPILEDRIVER) += $(call cc-option,-march=bdver2)
|
||||
+ cflags-$(CONFIG_MJAGUAR) += $(call cc-option,-march=btver2)
|
||||
cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
|
||||
|
||||
cflags-$(CONFIG_MCORE2) += \
|
||||
- $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
|
||||
- cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
|
||||
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
|
||||
+ $(call cc-option,-march=core2,$(call cc-option,-mtune=core2))
|
||||
+ cflags-$(CONFIG_MNEHALEM) += \
|
||||
+ $(call cc-option,-march=nehalem,$(call cc-option,-mtune=nehalem))
|
||||
+ cflags-$(CONFIG_MWESTMERE) += \
|
||||
+ $(call cc-option,-march=westmere,$(call cc-option,-mtune=westmere))
|
||||
+ cflags-$(CONFIG_MSANDYBRIDGE) += \
|
||||
+ $(call cc-option,-march=sandybridge,$(call cc-option,-mtune=sandybridge))
|
||||
+ cflags-$(CONFIG_MIVYBRIDGE) += \
|
||||
+ $(call cc-option,-march=ivybridge,$(call cc-option,-mtune=ivybridge))
|
||||
+ cflags-$(CONFIG_MHASWELL) += \
|
||||
+ $(call cc-option,-march=haswell,$(call cc-option,-mtune=haswell))
|
||||
+ cflags-$(CONFIG_MBROADWELL) += \
|
||||
+ $(call cc-option,-march=broadwell,$(call cc-option,-mtune=broadwell))
|
||||
+ cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell) \
|
||||
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
|
||||
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
|
||||
--- a/arch/x86/Makefile_32.cpu 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Makefile_32.cpu 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -23,7 +23,15 @@ cflags-$(CONFIG_MK6) += -march=k6
|
||||
# Please note, that patches that add -march=athlon-xp and friends are pointless.
|
||||
# They make zero difference whatsosever to performance at this time.
|
||||
cflags-$(CONFIG_MK7) += -march=athlon
|
||||
+cflags-$(CONFIG_MNATIVE) += $(call cc-option,-march=native)
|
||||
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8,-march=athlon)
|
||||
+cflags-$(CONFIG_MK8SSE3) += $(call cc-option,-march=k8-sse3,-march=athlon)
|
||||
+cflags-$(CONFIG_MK10) += $(call cc-option,-march=amdfam10,-march=athlon)
|
||||
+cflags-$(CONFIG_MBARCELONA) += $(call cc-option,-march=barcelona,-march=athlon)
|
||||
+cflags-$(CONFIG_MBOBCAT) += $(call cc-option,-march=btver1,-march=athlon)
|
||||
+cflags-$(CONFIG_MBULLDOZER) += $(call cc-option,-march=bdver1,-march=athlon)
|
||||
+cflags-$(CONFIG_MPILEDRIVER) += $(call cc-option,-march=bdver2,-march=athlon)
|
||||
+cflags-$(CONFIG_MJAGUAR) += $(call cc-option,-march=btver2,-march=athlon)
|
||||
cflags-$(CONFIG_MCRUSOE) += -march=i686 $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
|
||||
cflags-$(CONFIG_MEFFICEON) += -march=i686 $(call tune,pentium3) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
|
||||
cflags-$(CONFIG_MWINCHIPC6) += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
@@ -32,8 +40,14 @@ cflags-$(CONFIG_MCYRIXIII) += $(call cc-
|
||||
cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
|
||||
cflags-$(CONFIG_MVIAC7) += -march=i686
|
||||
cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
|
||||
-cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom,$(call cc-option,-march=core2,-march=i686)) \
|
||||
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
|
||||
+cflags-$(CONFIG_MNEHALEM) += -march=i686 $(call tune,nehalem)
|
||||
+cflags-$(CONFIG_MWESTMERE) += -march=i686 $(call tune,westmere)
|
||||
+cflags-$(CONFIG_MSANDYBRIDGE) += -march=i686 $(call tune,sandybridge)
|
||||
+cflags-$(CONFIG_MIVYBRIDGE) += -march=i686 $(call tune,ivybridge)
|
||||
+cflags-$(CONFIG_MHASWELL) += -march=i686 $(call tune,haswell)
|
||||
+cflags-$(CONFIG_MBROADWELL) += -march=i686 $(call tune,broadwell)
|
||||
+cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell,$(call cc-option,-march=core2,-march=i686)) \
|
||||
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
|
||||
|
||||
# AMD Elan support
|
||||
cflags-$(CONFIG_MELAN) += -march=i486
|
@ -1 +1 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.1&&merge(sys-kernel/calculate-sources)<4.2&&pkg(sys-apps/calculate-utils)>=3.3.0.16
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.1&&merge(sys-kernel/calculate-sources)<4.2
|
||||
|
@ -1 +1 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.4&&merge(sys-kernel/calculate-sources)<4.5&&pkg(sys-apps/calculate-utils)>=3.3.0.16
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.4&&merge(sys-kernel/calculate-sources)<4.5
|
||||
|
@ -1 +1 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.7&&merge(sys-kernel/calculate-sources)<4.8&&pkg(sys-apps/calculate-utils)>=3.3.0.16
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.7&&merge(sys-kernel/calculate-sources)<4.8
|
||||
|
@ -0,0 +1,104 @@
|
||||
# Calculate format=diff os_linux_system==desktop
|
||||
From 22ee35ec82fa543b65c1b6d516a086a21f723846 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Valente <paolo.valente@unimore.it>
|
||||
Date: Tue, 7 Apr 2015 13:39:12 +0200
|
||||
Subject: [PATCH 1/4] block: cgroups, kconfig, build bits for BFQ-v7r11-4.7.0
|
||||
|
||||
Update Kconfig.iosched and do the related Makefile changes to include
|
||||
kernel configuration options for BFQ. Also increase the number of
|
||||
policies supported by the blkio controller so that BFQ can add its
|
||||
own.
|
||||
|
||||
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
|
||||
Signed-off-by: Arianna Avanzini <avanzini@google.com>
|
||||
---
|
||||
block/Kconfig.iosched | 32 ++++++++++++++++++++++++++++++++
|
||||
block/Makefile | 1 +
|
||||
include/linux/blkdev.h | 2 +-
|
||||
3 files changed, 34 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
|
||||
index 421bef9..0ee5f0f 100644
|
||||
--- a/block/Kconfig.iosched
|
||||
+++ b/block/Kconfig.iosched
|
||||
@@ -39,6 +39,27 @@ config CFQ_GROUP_IOSCHED
|
||||
---help---
|
||||
Enable group IO scheduling in CFQ.
|
||||
|
||||
+config IOSCHED_BFQ
|
||||
+ tristate "BFQ I/O scheduler"
|
||||
+ default n
|
||||
+ ---help---
|
||||
+ The BFQ I/O scheduler tries to distribute bandwidth among
|
||||
+ all processes according to their weights.
|
||||
+ It aims at distributing the bandwidth as desired, independently of
|
||||
+ the disk parameters and with any workload. It also tries to
|
||||
+ guarantee low latency to interactive and soft real-time
|
||||
+ applications. If compiled built-in (saying Y here), BFQ can
|
||||
+ be configured to support hierarchical scheduling.
|
||||
+
|
||||
+config CGROUP_BFQIO
|
||||
+ bool "BFQ hierarchical scheduling support"
|
||||
+ depends on CGROUPS && IOSCHED_BFQ=y
|
||||
+ default n
|
||||
+ ---help---
|
||||
+ Enable hierarchical scheduling in BFQ, using the cgroups
|
||||
+ filesystem interface. The name of the subsystem will be
|
||||
+ bfqio.
|
||||
+
|
||||
choice
|
||||
prompt "Default I/O scheduler"
|
||||
default DEFAULT_CFQ
|
||||
@@ -52,6 +73,16 @@ choice
|
||||
config DEFAULT_CFQ
|
||||
bool "CFQ" if IOSCHED_CFQ=y
|
||||
|
||||
+ config DEFAULT_BFQ
|
||||
+ bool "BFQ" if IOSCHED_BFQ=y
|
||||
+ help
|
||||
+ Selects BFQ as the default I/O scheduler which will be
|
||||
+ used by default for all block devices.
|
||||
+ The BFQ I/O scheduler aims at distributing the bandwidth
|
||||
+ as desired, independently of the disk parameters and with
|
||||
+ any workload. It also tries to guarantee low latency to
|
||||
+ interactive and soft real-time applications.
|
||||
+
|
||||
config DEFAULT_NOOP
|
||||
bool "No-op"
|
||||
|
||||
@@ -61,6 +92,7 @@ config DEFAULT_IOSCHED
|
||||
string
|
||||
default "deadline" if DEFAULT_DEADLINE
|
||||
default "cfq" if DEFAULT_CFQ
|
||||
+ default "bfq" if DEFAULT_BFQ
|
||||
default "noop" if DEFAULT_NOOP
|
||||
|
||||
endmenu
|
||||
diff --git a/block/Makefile b/block/Makefile
|
||||
index 9eda232..4a36683 100644
|
||||
--- a/block/Makefile
|
||||
+++ b/block/Makefile
|
||||
@@ -18,6 +18,7 @@ obj-$(CONFIG_BLK_DEV_THROTTLING) += blk-throttle.o
|
||||
obj-$(CONFIG_IOSCHED_NOOP) += noop-iosched.o
|
||||
obj-$(CONFIG_IOSCHED_DEADLINE) += deadline-iosched.o
|
||||
obj-$(CONFIG_IOSCHED_CFQ) += cfq-iosched.o
|
||||
+obj-$(CONFIG_IOSCHED_BFQ) += bfq-iosched.o
|
||||
|
||||
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
|
||||
obj-$(CONFIG_BLK_CMDLINE_PARSER) += cmdline-parser.o
|
||||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
|
||||
index 3d9cf32..8d862a0 100644
|
||||
--- a/include/linux/blkdev.h
|
||||
+++ b/include/linux/blkdev.h
|
||||
@@ -45,7 +45,7 @@ struct pr_ops;
|
||||
* Maximum number of blkcg policies allowed to be registered concurrently.
|
||||
* Defined here to simplify include dependency.
|
||||
*/
|
||||
-#define BLKCG_MAX_POLS 2
|
||||
+#define BLKCG_MAX_POLS 3
|
||||
|
||||
struct request;
|
||||
typedef void (rq_end_io_fn)(struct request *, int);
|
||||
--
|
||||
1.9.1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,6 @@
|
||||
# Calculate format=kernel name=.config os_linux_system==desktop
|
||||
CONFIG_BFQ_GROUP_IOSCHED=y
|
||||
CONFIG_DEFAULT_BFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_IOSCHED="bfq"
|
||||
CONFIG_IOSCHED_BFQ=y
|
@ -0,0 +1 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)>=4.7&&merge(sys-kernel/calculate-sources)<4.8
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,362 @@
|
||||
# Calculate format=kernel name=.config os_linux_system==server
|
||||
# CONFIG_CYPRESS_FIRMWARE is not set
|
||||
# CONFIG_DRM_I810 is not set
|
||||
# CONFIG_DVB_TUNER_DIB0070 is not set
|
||||
# CONFIG_DVB_TUNER_DIB0090 is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
CONFIG_HZ=300
|
||||
CONFIG_HZ_300=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_UNLOCK=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK=y
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
|
||||
# CONFIG_MEDIA_CAMERA_SUPPORT is not set
|
||||
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
|
||||
# CONFIG_MEDIA_PCI_SUPPORT is not set
|
||||
# CONFIG_MEDIA_SDR_SUPPORT is not set
|
||||
# CONFIG_MEDIA_USB_SUPPORT is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_PREEMPT_NONE=y
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TTPCI_EEPROM is not set
|
||||
!CONFIG_DVB_AF9013=
|
||||
!CONFIG_DVB_AF9033=
|
||||
!CONFIG_DVB_AS102=
|
||||
!CONFIG_DVB_AS102_FE=
|
||||
!CONFIG_DVB_AU8522=
|
||||
!CONFIG_DVB_AU8522_DTV=
|
||||
!CONFIG_DVB_AU8522_V4L=
|
||||
!CONFIG_DVB_AV7110=
|
||||
!CONFIG_DVB_AV7110_IR=
|
||||
!CONFIG_DVB_AV7110_OSD=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_PCI=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_USB=
|
||||
!CONFIG_DVB_BCM3510=
|
||||
!CONFIG_DVB_BUDGET=
|
||||
!CONFIG_DVB_BUDGET_AV=
|
||||
!CONFIG_DVB_BUDGET_CORE=
|
||||
!CONFIG_DVB_BUDGET_PATCH=
|
||||
!CONFIG_DVB_CORE=
|
||||
!CONFIG_DVB_CX24116=
|
||||
!CONFIG_DVB_CX24120=
|
||||
!CONFIG_DVB_CX24123=
|
||||
!CONFIG_DVB_CXD2820R=
|
||||
!CONFIG_DVB_DDBRIDGE=
|
||||
!CONFIG_DVB_DRXK=
|
||||
!CONFIG_DVB_DYNAMIC_MINORS=
|
||||
!CONFIG_DVB_EC100=
|
||||
!CONFIG_DVB_FIREDTV=
|
||||
!CONFIG_DVB_ISL6405=
|
||||
!CONFIG_DVB_ISL6421=
|
||||
!CONFIG_DVB_ISL6423=
|
||||
!CONFIG_DVB_L64781=
|
||||
!CONFIG_DVB_LG2160=
|
||||
!CONFIG_DVB_LGDT3305=
|
||||
!CONFIG_DVB_LGDT330X=
|
||||
!CONFIG_DVB_LNBP21=
|
||||
!CONFIG_DVB_M88DS3103=
|
||||
!CONFIG_DVB_MAX_ADAPTERS=
|
||||
!CONFIG_DVB_MT312=
|
||||
!CONFIG_DVB_MT352=
|
||||
!CONFIG_DVB_NET=
|
||||
!CONFIG_DVB_NGENE=
|
||||
!CONFIG_DVB_NXT200X=
|
||||
!CONFIG_DVB_PLATFORM_DRIVERS=
|
||||
!CONFIG_DVB_PLL=
|
||||
!CONFIG_DVB_PLUTO2=
|
||||
!CONFIG_DVB_PT1=
|
||||
!CONFIG_DVB_PT3=
|
||||
!CONFIG_DVB_RTL2830=
|
||||
!CONFIG_DVB_RTL2832=
|
||||
!CONFIG_DVB_RTL2832_SDR=
|
||||
!CONFIG_DVB_S5H1409=
|
||||
!CONFIG_DVB_S5H1411=
|
||||
!CONFIG_DVB_S5H1420=
|
||||
!CONFIG_DVB_SI2168=
|
||||
!CONFIG_DVB_SP2=
|
||||
!CONFIG_DVB_SP8870=
|
||||
!CONFIG_DVB_STB0899=
|
||||
!CONFIG_DVB_STV0297=
|
||||
!CONFIG_DVB_STV0299=
|
||||
!CONFIG_DVB_STV0900=
|
||||
!CONFIG_DVB_STV090x=
|
||||
!CONFIG_DVB_STV6110=
|
||||
!CONFIG_DVB_STV6110x=
|
||||
!CONFIG_DVB_TC90522=
|
||||
!CONFIG_DVB_TDA10021=
|
||||
!CONFIG_DVB_TDA10023=
|
||||
!CONFIG_DVB_TDA10048=
|
||||
!CONFIG_DVB_TDA1004X=
|
||||
!CONFIG_DVB_TDA10086=
|
||||
!CONFIG_DVB_TDA18271C2DD=
|
||||
!CONFIG_DVB_TDA8083=
|
||||
!CONFIG_DVB_TDA8261=
|
||||
!CONFIG_DVB_TDA826X=
|
||||
!CONFIG_DVB_TS2020=
|
||||
!CONFIG_DVB_TTUSB_BUDGET=
|
||||
!CONFIG_DVB_TTUSB_DEC=
|
||||
!CONFIG_DVB_TUA6100=
|
||||
!CONFIG_DVB_TUNER_CX24113=
|
||||
!CONFIG_DVB_TUNER_ITD1000=
|
||||
!CONFIG_DVB_USB_AF9015=
|
||||
!CONFIG_DVB_USB_AF9035=
|
||||
!CONFIG_DVB_USB_ANYSEE=
|
||||
!CONFIG_DVB_USB_AU6610=
|
||||
!CONFIG_DVB_USB_AZ6007=
|
||||
!CONFIG_DVB_USB_CE6230=
|
||||
!CONFIG_DVB_USB_DVBSKY=
|
||||
!CONFIG_DVB_USB_EC168=
|
||||
!CONFIG_DVB_USB_GL861=
|
||||
!CONFIG_DVB_USB_MXL111SF=
|
||||
!CONFIG_DVB_USB_RTL28XXU=
|
||||
!CONFIG_DVB_USB_V2=
|
||||
!CONFIG_DVB_VES1820=
|
||||
!CONFIG_DVB_VES1X93=
|
||||
!CONFIG_DVB_ZL10036=
|
||||
!CONFIG_DVB_ZL10039=
|
||||
!CONFIG_DVB_ZL10353=
|
||||
!CONFIG_FRAME_VECTOR=
|
||||
!CONFIG_JOYSTICK_A3D=
|
||||
!CONFIG_JOYSTICK_ADI=
|
||||
!CONFIG_JOYSTICK_ANALOG=
|
||||
!CONFIG_JOYSTICK_AS5011=
|
||||
!CONFIG_JOYSTICK_COBRA=
|
||||
!CONFIG_JOYSTICK_DB9=
|
||||
!CONFIG_JOYSTICK_GAMECON=
|
||||
!CONFIG_JOYSTICK_GF2K=
|
||||
!CONFIG_JOYSTICK_GRIP=
|
||||
!CONFIG_JOYSTICK_GRIP_MP=
|
||||
!CONFIG_JOYSTICK_GUILLEMOT=
|
||||
!CONFIG_JOYSTICK_IFORCE=
|
||||
!CONFIG_JOYSTICK_IFORCE_232=
|
||||
!CONFIG_JOYSTICK_IFORCE_USB=
|
||||
!CONFIG_JOYSTICK_INTERACT=
|
||||
!CONFIG_JOYSTICK_JOYDUMP=
|
||||
!CONFIG_JOYSTICK_MAGELLAN=
|
||||
!CONFIG_JOYSTICK_SIDEWINDER=
|
||||
!CONFIG_JOYSTICK_SPACEBALL=
|
||||
!CONFIG_JOYSTICK_SPACEORB=
|
||||
!CONFIG_JOYSTICK_STINGER=
|
||||
!CONFIG_JOYSTICK_TMDC=
|
||||
!CONFIG_JOYSTICK_TURBOGRAFX=
|
||||
!CONFIG_JOYSTICK_TWIDJOY=
|
||||
!CONFIG_JOYSTICK_WALKERA0701=
|
||||
!CONFIG_JOYSTICK_WARRIOR=
|
||||
!CONFIG_JOYSTICK_XPAD=
|
||||
!CONFIG_JOYSTICK_XPAD_FF=
|
||||
!CONFIG_JOYSTICK_XPAD_LEDS=
|
||||
!CONFIG_JOYSTICK_ZHENHUA=
|
||||
!CONFIG_MAC_EMUMOUSEBTN=
|
||||
!CONFIG_MEDIA_ATTACH=
|
||||
!CONFIG_MEDIA_COMMON_OPTIONS=
|
||||
!CONFIG_MEDIA_CONTROLLER=
|
||||
!CONFIG_MEDIA_SUBDRV_AUTOSELECT=
|
||||
!CONFIG_MEDIA_TUNER=
|
||||
!CONFIG_MEDIA_TUNER_E4000=
|
||||
!CONFIG_MEDIA_TUNER_FC0011=
|
||||
!CONFIG_MEDIA_TUNER_FC0012=
|
||||
!CONFIG_MEDIA_TUNER_FC0013=
|
||||
!CONFIG_MEDIA_TUNER_FC2580=
|
||||
!CONFIG_MEDIA_TUNER_IT913X=
|
||||
!CONFIG_MEDIA_TUNER_MC44S803=
|
||||
!CONFIG_MEDIA_TUNER_MT2060=
|
||||
!CONFIG_MEDIA_TUNER_MT2063=
|
||||
!CONFIG_MEDIA_TUNER_MT20XX=
|
||||
!CONFIG_MEDIA_TUNER_MT2131=
|
||||
!CONFIG_MEDIA_TUNER_MXL301RF=
|
||||
!CONFIG_MEDIA_TUNER_MXL5005S=
|
||||
!CONFIG_MEDIA_TUNER_MXL5007T=
|
||||
!CONFIG_MEDIA_TUNER_QM1D1C0042=
|
||||
!CONFIG_MEDIA_TUNER_QT1010=
|
||||
!CONFIG_MEDIA_TUNER_R820T=
|
||||
!CONFIG_MEDIA_TUNER_SI2157=
|
||||
!CONFIG_MEDIA_TUNER_SIMPLE=
|
||||
!CONFIG_MEDIA_TUNER_TDA18212=
|
||||
!CONFIG_MEDIA_TUNER_TDA18218=
|
||||
!CONFIG_MEDIA_TUNER_TDA18271=
|
||||
!CONFIG_MEDIA_TUNER_TDA827X=
|
||||
!CONFIG_MEDIA_TUNER_TDA8290=
|
||||
!CONFIG_MEDIA_TUNER_TDA9887=
|
||||
!CONFIG_MEDIA_TUNER_TUA9001=
|
||||
!CONFIG_MEDIA_TUNER_XC2028=
|
||||
!CONFIG_MEDIA_TUNER_XC4000=
|
||||
!CONFIG_MEDIA_TUNER_XC5000=
|
||||
!CONFIG_PREEMPT_COUNT=
|
||||
!CONFIG_PREEMPT_RCU=
|
||||
!CONFIG_SMS_SDIO_DRV=
|
||||
!CONFIG_SMS_SIANO_MDTV=
|
||||
!CONFIG_SMS_USB_DRV=
|
||||
!CONFIG_TABLET_SERIAL_WACOM4=
|
||||
!CONFIG_TABLET_USB_ACECAD=
|
||||
!CONFIG_TABLET_USB_AIPTEK=
|
||||
!CONFIG_TABLET_USB_GTCO=
|
||||
!CONFIG_TABLET_USB_HANWANG=
|
||||
!CONFIG_TABLET_USB_KBTAB=
|
||||
!CONFIG_UNINLINE_SPIN_UNLOCK=
|
||||
!CONFIG_USB_AIRSPY=
|
||||
!CONFIG_USB_CONFIGFS_F_UVC=
|
||||
!CONFIG_USB_GL860=
|
||||
!CONFIG_USB_GSPCA=
|
||||
!CONFIG_USB_GSPCA_BENQ=
|
||||
!CONFIG_USB_GSPCA_CONEX=
|
||||
!CONFIG_USB_GSPCA_CPIA1=
|
||||
!CONFIG_USB_GSPCA_DTCS033=
|
||||
!CONFIG_USB_GSPCA_ETOMS=
|
||||
!CONFIG_USB_GSPCA_FINEPIX=
|
||||
!CONFIG_USB_GSPCA_JEILINJ=
|
||||
!CONFIG_USB_GSPCA_JL2005BCD=
|
||||
!CONFIG_USB_GSPCA_KINECT=
|
||||
!CONFIG_USB_GSPCA_KONICA=
|
||||
!CONFIG_USB_GSPCA_MARS=
|
||||
!CONFIG_USB_GSPCA_MR97310A=
|
||||
!CONFIG_USB_GSPCA_NW80X=
|
||||
!CONFIG_USB_GSPCA_OV519=
|
||||
!CONFIG_USB_GSPCA_OV534=
|
||||
!CONFIG_USB_GSPCA_OV534_9=
|
||||
!CONFIG_USB_GSPCA_PAC207=
|
||||
!CONFIG_USB_GSPCA_PAC7302=
|
||||
!CONFIG_USB_GSPCA_PAC7311=
|
||||
!CONFIG_USB_GSPCA_SE401=
|
||||
!CONFIG_USB_GSPCA_SN9C2028=
|
||||
!CONFIG_USB_GSPCA_SN9C20X=
|
||||
!CONFIG_USB_GSPCA_SONIXB=
|
||||
!CONFIG_USB_GSPCA_SONIXJ=
|
||||
!CONFIG_USB_GSPCA_SPCA1528=
|
||||
!CONFIG_USB_GSPCA_SPCA500=
|
||||
!CONFIG_USB_GSPCA_SPCA501=
|
||||
!CONFIG_USB_GSPCA_SPCA505=
|
||||
!CONFIG_USB_GSPCA_SPCA506=
|
||||
!CONFIG_USB_GSPCA_SPCA508=
|
||||
!CONFIG_USB_GSPCA_SPCA561=
|
||||
!CONFIG_USB_GSPCA_SQ905=
|
||||
!CONFIG_USB_GSPCA_SQ905C=
|
||||
!CONFIG_USB_GSPCA_SQ930X=
|
||||
!CONFIG_USB_GSPCA_STK014=
|
||||
!CONFIG_USB_GSPCA_STK1135=
|
||||
!CONFIG_USB_GSPCA_STV0680=
|
||||
!CONFIG_USB_GSPCA_SUNPLUS=
|
||||
!CONFIG_USB_GSPCA_T613=
|
||||
!CONFIG_USB_GSPCA_TOPRO=
|
||||
!CONFIG_USB_GSPCA_TOUPTEK=
|
||||
!CONFIG_USB_GSPCA_TV8532=
|
||||
!CONFIG_USB_GSPCA_VC032X=
|
||||
!CONFIG_USB_GSPCA_VICAM=
|
||||
!CONFIG_USB_GSPCA_XIRLINK_CIT=
|
||||
!CONFIG_USB_GSPCA_ZC3XX=
|
||||
!CONFIG_USB_HACKRF=
|
||||
!CONFIG_USB_M5602=
|
||||
!CONFIG_USB_PWC=
|
||||
!CONFIG_USB_PWC_DEBUG=
|
||||
!CONFIG_USB_PWC_INPUT_EVDEV=
|
||||
!CONFIG_USB_S2255=
|
||||
!CONFIG_USB_STKWEBCAM=
|
||||
!CONFIG_USB_STV06XX=
|
||||
!CONFIG_USB_VIDEO_CLASS=
|
||||
!CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=
|
||||
!CONFIG_USB_ZR364XX=
|
||||
!CONFIG_V4L_MEM2MEM_DRIVERS=
|
||||
!CONFIG_V4L_PLATFORM_DRIVERS=
|
||||
!CONFIG_V4L_TEST_DRIVERS=
|
||||
!CONFIG_VIDEO_ADV7170=
|
||||
!CONFIG_VIDEO_ADV7175=
|
||||
!CONFIG_VIDEO_AU0828=
|
||||
!CONFIG_VIDEO_AU0828_V4L2=
|
||||
!CONFIG_VIDEO_BT819=
|
||||
!CONFIG_VIDEO_BT856=
|
||||
!CONFIG_VIDEO_BT866=
|
||||
!CONFIG_VIDEOBUF2_CORE=
|
||||
!CONFIG_VIDEOBUF2_DMA_CONTIG=
|
||||
!CONFIG_VIDEOBUF2_DMA_SG=
|
||||
!CONFIG_VIDEOBUF2_DVB=
|
||||
!CONFIG_VIDEOBUF2_MEMOPS=
|
||||
!CONFIG_VIDEOBUF2_VMALLOC=
|
||||
!CONFIG_VIDEOBUF_DMA_SG=
|
||||
!CONFIG_VIDEOBUF_GEN=
|
||||
!CONFIG_VIDEOBUF_VMALLOC=
|
||||
!CONFIG_VIDEO_CPIA2=
|
||||
!CONFIG_VIDEO_CS53L32A=
|
||||
!CONFIG_VIDEO_CX2341X=
|
||||
!CONFIG_VIDEO_CX25821=
|
||||
!CONFIG_VIDEO_CX25821_ALSA=
|
||||
!CONFIG_VIDEO_CX25840=
|
||||
!CONFIG_VIDEO_DEV=
|
||||
!CONFIG_VIDEO_DT3155=
|
||||
!CONFIG_VIDEO_EM28XX=
|
||||
!CONFIG_VIDEO_EM28XX_ALSA=
|
||||
!CONFIG_VIDEO_EM28XX_DVB=
|
||||
!CONFIG_VIDEO_EM28XX_V4L2=
|
||||
!CONFIG_VIDEO_GO7007=
|
||||
!CONFIG_VIDEO_GO7007_LOADER=
|
||||
!CONFIG_VIDEO_GO7007_USB=
|
||||
!CONFIG_VIDEO_GO7007_USB_S2250_BOARD=
|
||||
!CONFIG_VIDEO_HDPVR=
|
||||
!CONFIG_VIDEO_HEXIUM_GEMINI=
|
||||
!CONFIG_VIDEO_HEXIUM_ORION=
|
||||
!CONFIG_VIDEO_KS0127=
|
||||
!CONFIG_VIDEO_MEYE=
|
||||
!CONFIG_VIDEO_MSP3400=
|
||||
!CONFIG_VIDEO_MT9V011=
|
||||
!CONFIG_VIDEO_MXB=
|
||||
!CONFIG_VIDEO_OV7640=
|
||||
!CONFIG_VIDEO_PVRUSB2=
|
||||
!CONFIG_VIDEO_PVRUSB2_DEBUGIFC=
|
||||
!CONFIG_VIDEO_PVRUSB2_DVB=
|
||||
!CONFIG_VIDEO_PVRUSB2_SYSFS=
|
||||
!CONFIG_VIDEO_SAA6588=
|
||||
!CONFIG_VIDEO_SAA6752HS=
|
||||
!CONFIG_VIDEO_SAA7110=
|
||||
!CONFIG_VIDEO_SAA711X=
|
||||
!CONFIG_VIDEO_SAA7134=
|
||||
!CONFIG_VIDEO_SAA7134_ALSA=
|
||||
!CONFIG_VIDEO_SAA7134_DVB=
|
||||
!CONFIG_VIDEO_SAA7134_GO7007=
|
||||
!CONFIG_VIDEO_SAA7146=
|
||||
!CONFIG_VIDEO_SAA7146_VV=
|
||||
!CONFIG_VIDEO_SAA7164=
|
||||
!CONFIG_VIDEO_SAA7185=
|
||||
!CONFIG_VIDEO_SOLO6X10=
|
||||
!CONFIG_VIDEO_SONY_BTF_MPX=
|
||||
!CONFIG_VIDEO_STK1160=
|
||||
!CONFIG_VIDEO_STK1160_AC97=
|
||||
!CONFIG_VIDEO_STK1160_COMMON=
|
||||
!CONFIG_VIDEO_TDA9840=
|
||||
!CONFIG_VIDEO_TEA6415C=
|
||||
!CONFIG_VIDEO_TEA6420=
|
||||
!CONFIG_VIDEO_TUNER=
|
||||
!CONFIG_VIDEO_TVEEPROM=
|
||||
!CONFIG_VIDEO_TVP5150=
|
||||
!CONFIG_VIDEO_TW2804=
|
||||
!CONFIG_VIDEO_TW68=
|
||||
!CONFIG_VIDEO_TW9903=
|
||||
!CONFIG_VIDEO_TW9906=
|
||||
!CONFIG_VIDEO_UDA1342=
|
||||
!CONFIG_VIDEO_USBTV=
|
||||
!CONFIG_VIDEO_USBVISION=
|
||||
!CONFIG_VIDEO_V4L2=
|
||||
!CONFIG_VIDEO_VPX3220=
|
||||
!CONFIG_VIDEO_WM8775=
|
||||
!CONFIG_VIDEO_ZORAN=
|
||||
!CONFIG_VIDEO_ZORAN_AVS6EYES=
|
||||
!CONFIG_VIDEO_ZORAN_BUZ=
|
||||
!CONFIG_VIDEO_ZORAN_DC10=
|
||||
!CONFIG_VIDEO_ZORAN_DC30=
|
||||
!CONFIG_VIDEO_ZORAN_LML33=
|
||||
!CONFIG_VIDEO_ZORAN_LML33R10=
|
||||
!CONFIG_VIDEO_ZORAN_ZR36060=
|
||||
!CONFIG_DVB_A8293=
|
||||
!CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG=
|
||||
!CONFIG_DVB_CX22700=
|
||||
!CONFIG_DVB_DRX39XYJ=
|
||||
!CONFIG_DVB_DRXD=
|
||||
!CONFIG_DVB_MB86A20S=
|
||||
!CONFIG_DVB_S921=
|
||||
!CONFIG_DVB_TDA10071=
|
||||
!CONFIG_SMS_SIANO_DEBUGFS=
|
||||
!CONFIG_USB_G_WEBCAM=
|
@ -0,0 +1,388 @@
|
||||
# Calculate format=diff pkg(sys-devel/gcc)>=4.9
|
||||
WARNING - this version of the patch works with version 4.9+ of gcc and with
|
||||
kernel version 3.15.x+ and should NOT be applied when compiling on older
|
||||
versions due to name changes of the flags with the 4.9 release of gcc.
|
||||
Use the older version of this patch hosted on the same github for older
|
||||
versions of gcc. For example:
|
||||
|
||||
corei7 --> nehalem
|
||||
corei7-avx --> sandybridge
|
||||
core-avx-i --> ivybridge
|
||||
core-avx2 --> haswell
|
||||
|
||||
For more, see: https://gcc.gnu.org/gcc-4.9/changes.html
|
||||
|
||||
It also changes 'atom' to 'bonnell' in accordance with the gcc v4.9 changes.
|
||||
Note that upstream is using the deprecated 'match=atom' flags when I believe it
|
||||
should use the newer 'march=bonnell' flag for atom processors.
|
||||
|
||||
I have made that change to this patch set as well. See the following kernel
|
||||
bug report to see if I'm right: https://bugzilla.kernel.org/show_bug.cgi?id=77461
|
||||
|
||||
This patch will expand the number of microarchitectures to include new
|
||||
processors including: AMD K10-family, AMD Family 10h (Barcelona), AMD Family
|
||||
14h (Bobcat), AMD Family 15h (Bulldozer), AMD Family 15h (Piledriver), AMD
|
||||
Family 16h (Jaguar), Intel 1st Gen Core i3/i5/i7 (Nehalem), Intel 1.5 Gen Core
|
||||
i3/i5/i7 (Westmere), Intel 2nd Gen Core i3/i5/i7 (Sandybridge), Intel 3rd Gen
|
||||
Core i3/i5/i7 (Ivybridge), Intel 4th Gen Core i3/i5/i7 (Haswell), and Intel 5th
|
||||
Gen Core i3/i5/i7 (Broadwell). It also offers the compiler the 'native' flag.
|
||||
|
||||
Small but real speed increases are measurable using a make endpoint comparing
|
||||
a generic kernel to one built with one of the respective microarchs.
|
||||
|
||||
See the following experimental evidence supporting this statement:
|
||||
https://github.com/graysky2/kernel_gcc_patch
|
||||
|
||||
REQUIREMENTS
|
||||
linux version >=3.15
|
||||
gcc version >=4.9
|
||||
|
||||
--- a/arch/x86/include/asm/module.h 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/include/asm/module.h 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -15,6 +15,20 @@
|
||||
#define MODULE_PROC_FAMILY "586MMX "
|
||||
#elif defined CONFIG_MCORE2
|
||||
#define MODULE_PROC_FAMILY "CORE2 "
|
||||
+#elif defined CONFIG_MNATIVE
|
||||
+#define MODULE_PROC_FAMILY "NATIVE "
|
||||
+#elif defined CONFIG_MNEHALEM
|
||||
+#define MODULE_PROC_FAMILY "NEHALEM "
|
||||
+#elif defined CONFIG_MWESTMERE
|
||||
+#define MODULE_PROC_FAMILY "WESTMERE "
|
||||
+#elif defined CONFIG_MSANDYBRIDGE
|
||||
+#define MODULE_PROC_FAMILY "SANDYBRIDGE "
|
||||
+#elif defined CONFIG_MIVYBRIDGE
|
||||
+#define MODULE_PROC_FAMILY "IVYBRIDGE "
|
||||
+#elif defined CONFIG_MHASWELL
|
||||
+#define MODULE_PROC_FAMILY "HASWELL "
|
||||
+#elif defined CONFIG_MBROADWELL
|
||||
+#define MODULE_PROC_FAMILY "BROADWELL "
|
||||
#elif defined CONFIG_MATOM
|
||||
#define MODULE_PROC_FAMILY "ATOM "
|
||||
#elif defined CONFIG_M686
|
||||
@@ -33,6 +47,20 @@
|
||||
#define MODULE_PROC_FAMILY "K7 "
|
||||
#elif defined CONFIG_MK8
|
||||
#define MODULE_PROC_FAMILY "K8 "
|
||||
+#elif defined CONFIG_MK8SSE3
|
||||
+#define MODULE_PROC_FAMILY "K8SSE3 "
|
||||
+#elif defined CONFIG_MK10
|
||||
+#define MODULE_PROC_FAMILY "K10 "
|
||||
+#elif defined CONFIG_MBARCELONA
|
||||
+#define MODULE_PROC_FAMILY "BARCELONA "
|
||||
+#elif defined CONFIG_MBOBCAT
|
||||
+#define MODULE_PROC_FAMILY "BOBCAT "
|
||||
+#elif defined CONFIG_MBULLDOZER
|
||||
+#define MODULE_PROC_FAMILY "BULLDOZER "
|
||||
+#elif defined CONFIG_MPILEDRIVER
|
||||
+#define MODULE_PROC_FAMILY "PILEDRIVER "
|
||||
+#elif defined CONFIG_MJAGUAR
|
||||
+#define MODULE_PROC_FAMILY "JAGUAR "
|
||||
#elif defined CONFIG_MELAN
|
||||
#define MODULE_PROC_FAMILY "ELAN "
|
||||
#elif defined CONFIG_MCRUSOE
|
||||
--- a/arch/x86/Kconfig.cpu 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Kconfig.cpu 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -137,9 +137,8 @@ config MPENTIUM4
|
||||
-Paxville
|
||||
-Dempsey
|
||||
|
||||
-
|
||||
config MK6
|
||||
- bool "K6/K6-II/K6-III"
|
||||
+ bool "AMD K6/K6-II/K6-III"
|
||||
depends on X86_32
|
||||
---help---
|
||||
Select this for an AMD K6-family processor. Enables use of
|
||||
@@ -147,7 +146,7 @@ config MK6
|
||||
flags to GCC.
|
||||
|
||||
config MK7
|
||||
- bool "Athlon/Duron/K7"
|
||||
+ bool "AMD Athlon/Duron/K7"
|
||||
depends on X86_32
|
||||
---help---
|
||||
Select this for an AMD Athlon K7-family processor. Enables use of
|
||||
@@ -155,12 +154,62 @@ config MK7
|
||||
flags to GCC.
|
||||
|
||||
config MK8
|
||||
- bool "Opteron/Athlon64/Hammer/K8"
|
||||
+ bool "AMD Opteron/Athlon64/Hammer/K8"
|
||||
---help---
|
||||
Select this for an AMD Opteron or Athlon64 Hammer-family processor.
|
||||
Enables use of some extended instructions, and passes appropriate
|
||||
optimization flags to GCC.
|
||||
|
||||
+config MK8SSE3
|
||||
+ bool "AMD Opteron/Athlon64/Hammer/K8 with SSE3"
|
||||
+ ---help---
|
||||
+ Select this for improved AMD Opteron or Athlon64 Hammer-family processors.
|
||||
+ Enables use of some extended instructions, and passes appropriate
|
||||
+ optimization flags to GCC.
|
||||
+
|
||||
+config MK10
|
||||
+ bool "AMD 61xx/7x50/PhenomX3/X4/II/K10"
|
||||
+ ---help---
|
||||
+ Select this for an AMD 61xx Eight-Core Magny-Cours, Athlon X2 7x50,
|
||||
+ Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.
|
||||
+ Enables use of some extended instructions, and passes appropriate
|
||||
+ optimization flags to GCC.
|
||||
+
|
||||
+config MBARCELONA
|
||||
+ bool "AMD Barcelona"
|
||||
+ ---help---
|
||||
+ Select this for AMD Barcelona and newer processors.
|
||||
+
|
||||
+ Enables -march=barcelona
|
||||
+
|
||||
+config MBOBCAT
|
||||
+ bool "AMD Bobcat"
|
||||
+ ---help---
|
||||
+ Select this for AMD Bobcat processors.
|
||||
+
|
||||
+ Enables -march=btver1
|
||||
+
|
||||
+config MBULLDOZER
|
||||
+ bool "AMD Bulldozer"
|
||||
+ ---help---
|
||||
+ Select this for AMD Bulldozer processors.
|
||||
+
|
||||
+ Enables -march=bdver1
|
||||
+
|
||||
+config MPILEDRIVER
|
||||
+ bool "AMD Piledriver"
|
||||
+ ---help---
|
||||
+ Select this for AMD Piledriver processors.
|
||||
+
|
||||
+ Enables -march=bdver2
|
||||
+
|
||||
+config MJAGUAR
|
||||
+ bool "AMD Jaguar"
|
||||
+ ---help---
|
||||
+ Select this for AMD Jaguar processors.
|
||||
+
|
||||
+ Enables -march=btver2
|
||||
+
|
||||
config MCRUSOE
|
||||
bool "Crusoe"
|
||||
depends on X86_32
|
||||
@@ -251,8 +300,17 @@ config MPSC
|
||||
using the cpu family field
|
||||
in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
|
||||
|
||||
+config MATOM
|
||||
+ bool "Intel Atom"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for the Intel Atom platform. Intel Atom CPUs have an
|
||||
+ in-order pipelining architecture and thus can benefit from
|
||||
+ accordingly optimized code. Use a recent GCC with specific Atom
|
||||
+ support in order to fully benefit from selecting this option.
|
||||
+
|
||||
config MCORE2
|
||||
- bool "Core 2/newer Xeon"
|
||||
+ bool "Intel Core 2"
|
||||
---help---
|
||||
|
||||
Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
|
||||
@@ -260,14 +318,55 @@ config MCORE2
|
||||
family in /proc/cpuinfo. Newer ones have 6 and older ones 15
|
||||
(not a typo)
|
||||
|
||||
-config MATOM
|
||||
- bool "Intel Atom"
|
||||
+ Enables -march=core2
|
||||
+
|
||||
+config MNEHALEM
|
||||
+ bool "Intel Nehalem"
|
||||
---help---
|
||||
|
||||
- Select this for the Intel Atom platform. Intel Atom CPUs have an
|
||||
- in-order pipelining architecture and thus can benefit from
|
||||
- accordingly optimized code. Use a recent GCC with specific Atom
|
||||
- support in order to fully benefit from selecting this option.
|
||||
+ Select this for 1st Gen Core processors in the Nehalem family.
|
||||
+
|
||||
+ Enables -march=nehalem
|
||||
+
|
||||
+config MWESTMERE
|
||||
+ bool "Intel Westmere"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for the Intel Westmere formerly Nehalem-C family.
|
||||
+
|
||||
+ Enables -march=westmere
|
||||
+
|
||||
+config MSANDYBRIDGE
|
||||
+ bool "Intel Sandy Bridge"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 2nd Gen Core processors in the Sandy Bridge family.
|
||||
+
|
||||
+ Enables -march=sandybridge
|
||||
+
|
||||
+config MIVYBRIDGE
|
||||
+ bool "Intel Ivy Bridge"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 3rd Gen Core processors in the Ivy Bridge family.
|
||||
+
|
||||
+ Enables -march=ivybridge
|
||||
+
|
||||
+config MHASWELL
|
||||
+ bool "Intel Haswell"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 4th Gen Core processors in the Haswell family.
|
||||
+
|
||||
+ Enables -march=haswell
|
||||
+
|
||||
+config MBROADWELL
|
||||
+ bool "Intel Broadwell"
|
||||
+ ---help---
|
||||
+
|
||||
+ Select this for 5th Gen Core processors in the Broadwell family.
|
||||
+
|
||||
+ Enables -march=broadwell
|
||||
|
||||
config GENERIC_CPU
|
||||
bool "Generic-x86-64"
|
||||
@@ -276,6 +375,19 @@ config GENERIC_CPU
|
||||
Generic x86-64 CPU.
|
||||
Run equally well on all x86-64 CPUs.
|
||||
|
||||
+config MNATIVE
|
||||
+ bool "Native optimizations autodetected by GCC"
|
||||
+ ---help---
|
||||
+
|
||||
+ GCC 4.2 and above support -march=native, which automatically detects
|
||||
+ the optimum settings to use based on your processor. -march=native
|
||||
+ also detects and applies additional settings beyond -march specific
|
||||
+ to your CPU, (eg. -msse4). Unless you have a specific reason not to
|
||||
+ (e.g. distcc cross-compiling), you should probably be using
|
||||
+ -march=native rather than anything listed below.
|
||||
+
|
||||
+ Enables -march=native
|
||||
+
|
||||
endchoice
|
||||
|
||||
config X86_GENERIC
|
||||
@@ -300,7 +412,7 @@ config X86_INTERNODE_CACHE_SHIFT
|
||||
config X86_L1_CACHE_SHIFT
|
||||
int
|
||||
default "7" if MPENTIUM4 || MPSC
|
||||
- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
||||
+ default "6" if MK7 || MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MBULLDOZER || MPILEDRIVER || MJAGUAR || MPENTIUMM || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || BROADWELL || MNATIVE || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
||||
default "4" if MELAN || M486 || MGEODEGX1
|
||||
default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
|
||||
|
||||
@@ -331,11 +443,11 @@ config X86_ALIGNMENT_16
|
||||
|
||||
config X86_INTEL_USERCOPY
|
||||
def_bool y
|
||||
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
|
||||
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK8SSE3 || MK7 || MEFFICEON || MCORE2 || MK10 || MBARCELONA || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MNATIVE
|
||||
|
||||
config X86_USE_PPRO_CHECKSUM
|
||||
def_bool y
|
||||
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
|
||||
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MK10 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MK8SSE3 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MATOM || MNATIVE
|
||||
|
||||
config X86_USE_3DNOW
|
||||
def_bool y
|
||||
@@ -359,17 +471,17 @@ config X86_P6_NOP
|
||||
|
||||
config X86_TSC
|
||||
def_bool y
|
||||
- depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64
|
||||
+ depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MK8SSE3 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MNATIVE || MATOM) || X86_64
|
||||
|
||||
config X86_CMPXCHG64
|
||||
def_bool y
|
||||
- depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM
|
||||
+ depends on X86_PAE || X86_64 || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM || MNATIVE
|
||||
|
||||
# this should be set for all -march=.. options where the compiler
|
||||
# generates cmov.
|
||||
config X86_CMOV
|
||||
def_bool y
|
||||
- depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
|
||||
+ depends on (MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MBULLDOZER || MPILEDRIVER || MJAGUAR || MK7 || MCORE2 || MNEHALEM || MWESTMERE || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MNATIVE || MATOM || MGEODE_LX)
|
||||
|
||||
config X86_MINIMUM_CPU_FAMILY
|
||||
int
|
||||
--- a/arch/x86/Makefile 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Makefile 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -92,13 +92,33 @@ else
|
||||
KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=3)
|
||||
|
||||
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
|
||||
+ cflags-$(CONFIG_MNATIVE) += $(call cc-option,-march=native)
|
||||
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
|
||||
+ cflags-$(CONFIG_MK8SSE3) += $(call cc-option,-march=k8-sse3,-mtune=k8)
|
||||
+ cflags-$(CONFIG_MK10) += $(call cc-option,-march=amdfam10)
|
||||
+ cflags-$(CONFIG_MBARCELONA) += $(call cc-option,-march=barcelona)
|
||||
+ cflags-$(CONFIG_MBOBCAT) += $(call cc-option,-march=btver1)
|
||||
+ cflags-$(CONFIG_MBULLDOZER) += $(call cc-option,-march=bdver1)
|
||||
+ cflags-$(CONFIG_MPILEDRIVER) += $(call cc-option,-march=bdver2)
|
||||
+ cflags-$(CONFIG_MJAGUAR) += $(call cc-option,-march=btver2)
|
||||
cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
|
||||
|
||||
cflags-$(CONFIG_MCORE2) += \
|
||||
- $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
|
||||
- cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
|
||||
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
|
||||
+ $(call cc-option,-march=core2,$(call cc-option,-mtune=core2))
|
||||
+ cflags-$(CONFIG_MNEHALEM) += \
|
||||
+ $(call cc-option,-march=nehalem,$(call cc-option,-mtune=nehalem))
|
||||
+ cflags-$(CONFIG_MWESTMERE) += \
|
||||
+ $(call cc-option,-march=westmere,$(call cc-option,-mtune=westmere))
|
||||
+ cflags-$(CONFIG_MSANDYBRIDGE) += \
|
||||
+ $(call cc-option,-march=sandybridge,$(call cc-option,-mtune=sandybridge))
|
||||
+ cflags-$(CONFIG_MIVYBRIDGE) += \
|
||||
+ $(call cc-option,-march=ivybridge,$(call cc-option,-mtune=ivybridge))
|
||||
+ cflags-$(CONFIG_MHASWELL) += \
|
||||
+ $(call cc-option,-march=haswell,$(call cc-option,-mtune=haswell))
|
||||
+ cflags-$(CONFIG_MBROADWELL) += \
|
||||
+ $(call cc-option,-march=broadwell,$(call cc-option,-mtune=broadwell))
|
||||
+ cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell) \
|
||||
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
|
||||
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
|
||||
--- a/arch/x86/Makefile_32.cpu 2014-08-03 18:25:02.000000000 -0400
|
||||
+++ b/arch/x86/Makefile_32.cpu 2014-09-13 09:37:16.721385247 -0400
|
||||
@@ -23,7 +23,15 @@ cflags-$(CONFIG_MK6) += -march=k6
|
||||
# Please note, that patches that add -march=athlon-xp and friends are pointless.
|
||||
# They make zero difference whatsosever to performance at this time.
|
||||
cflags-$(CONFIG_MK7) += -march=athlon
|
||||
+cflags-$(CONFIG_MNATIVE) += $(call cc-option,-march=native)
|
||||
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8,-march=athlon)
|
||||
+cflags-$(CONFIG_MK8SSE3) += $(call cc-option,-march=k8-sse3,-march=athlon)
|
||||
+cflags-$(CONFIG_MK10) += $(call cc-option,-march=amdfam10,-march=athlon)
|
||||
+cflags-$(CONFIG_MBARCELONA) += $(call cc-option,-march=barcelona,-march=athlon)
|
||||
+cflags-$(CONFIG_MBOBCAT) += $(call cc-option,-march=btver1,-march=athlon)
|
||||
+cflags-$(CONFIG_MBULLDOZER) += $(call cc-option,-march=bdver1,-march=athlon)
|
||||
+cflags-$(CONFIG_MPILEDRIVER) += $(call cc-option,-march=bdver2,-march=athlon)
|
||||
+cflags-$(CONFIG_MJAGUAR) += $(call cc-option,-march=btver2,-march=athlon)
|
||||
cflags-$(CONFIG_MCRUSOE) += -march=i686 $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
|
||||
cflags-$(CONFIG_MEFFICEON) += -march=i686 $(call tune,pentium3) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
|
||||
cflags-$(CONFIG_MWINCHIPC6) += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
@@ -32,8 +40,14 @@ cflags-$(CONFIG_MCYRIXIII) += $(call cc-
|
||||
cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
|
||||
cflags-$(CONFIG_MVIAC7) += -march=i686
|
||||
cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
|
||||
-cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom,$(call cc-option,-march=core2,-march=i686)) \
|
||||
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
|
||||
+cflags-$(CONFIG_MNEHALEM) += -march=i686 $(call tune,nehalem)
|
||||
+cflags-$(CONFIG_MWESTMERE) += -march=i686 $(call tune,westmere)
|
||||
+cflags-$(CONFIG_MSANDYBRIDGE) += -march=i686 $(call tune,sandybridge)
|
||||
+cflags-$(CONFIG_MIVYBRIDGE) += -march=i686 $(call tune,ivybridge)
|
||||
+cflags-$(CONFIG_MHASWELL) += -march=i686 $(call tune,haswell)
|
||||
+cflags-$(CONFIG_MBROADWELL) += -march=i686 $(call tune,broadwell)
|
||||
+cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell,$(call cc-option,-march=core2,-march=i686)) \
|
||||
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
|
||||
|
||||
# AMD Elan support
|
||||
cflags-$(CONFIG_MELAN) += -march=i486
|
Loading…
Reference in new issue