IMX53 on recent 4.4.x kernels

Submitted by Fabio Estevam on July 21, 2017, 4:29 p.m.

Details

Message ID CAOMZO5Bot=XuByN2e4FsZi=T+ZNJv5aFtbfGtKFfASEoLQPvuA@mail.gmail.com
State New
Headers show

Commit Message

Fabio Estevam July 21, 2017, 4:29 p.m.
Hi Russell,

On Thu, Jul 20, 2017 at 8:53 PM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:

> Another thing to check is that you have features like the spinlock
> debug, semaphore debug, lockdep, tracing etc all disabled - these
> can add quite a bit of additional processing into critical paths.

Yes, this really helps.

On my tests with Noel's application the execution time goes from 41 to
22 seconds on kernel 4.13-rc1.

Here is the defconfig changes generated by manually removing these
features and then using savedefconfig:

Comments

Russell King - ARM Linux July 21, 2017, 4:34 p.m.
On Fri, Jul 21, 2017 at 01:29:08PM -0300, Fabio Estevam wrote:
> Hi Russell,
> 
> On Thu, Jul 20, 2017 at 8:53 PM, Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
> 
> > Another thing to check is that you have features like the spinlock
> > debug, semaphore debug, lockdep, tracing etc all disabled - these
> > can add quite a bit of additional processing into critical paths.
> 
> Yes, this really helps.
> 
> On my tests with Noel's application the execution time goes from 41 to
> 22 seconds on kernel 4.13-rc1.
> 
> Here is the defconfig changes generated by manually removing these
> features and then using savedefconfig:

Note - you want lockdep and so forth enabled for development kernels
to catch bugs before changes are submitted upstream.  However, for
kernels that you care about performance, you need to have them disabled.

Like everything it's a balance between function and performance.
Fabio Estevam July 21, 2017, 4:37 p.m.
On Fri, Jul 21, 2017 at 1:34 PM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:

> Note - you want lockdep and so forth enabled for development kernels
> to catch bugs before changes are submitted upstream.  However, for
> kernels that you care about performance, you need to have them disabled.
>
> Like everything it's a balance between function and performance.

Yes, it makes sense. Thanks for the suggestion!
Noel vellemans July 21, 2017, 8:31 p.m.
Hi all, 

As soon as I read the hints from Russell,  I was convinced that there COULD be a big performance gain , by disabling debugging features.

I did not find time to check this ( we have national holidays here in our country, and we start our annual holidays)

But you can count on it when I test  (russell's hint's)  I'll report back my findings, but .. i'm almost sure , and  it is at least pointing me into a direction to look at, one that I overlooked..)

I see that Fabio did test, russell's hint's and that he had a huge improvement, fabio's first test results look promising , thats for sure ! 

Like Russel says, and like we all understand, it's a balance of functions vs performance. 

Thanks all for the Hints.. and I'll report back as soon as possible.

Keeping fingers crossed in the meantime. 

Regards 
Noel

Patch hide | download patch | download mbox

diff --git a/arch/arm/configs/imx_v6_v7_defconfig
b/arch/arm/configs/imx_v6_v7_defconfig
index 49e7969..21a37bd 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -9,6 +9,7 @@  CONFIG_CGROUPS=y
 CONFIG_RELAY=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_EXPERT=y
+CONFIG_KALLSYMS_ALL=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_SLUB_DEBUG is not set
 # CONFIG_COMPAT_BRK is not set
@@ -80,7 +81,6 @@  CONFIG_CAN_FLEXCAN=y
 CONFIG_BT=y
 CONFIG_BT_HCIUART=y
 CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_LL=y
 CONFIG_CFG80211=y
 CONFIG_CFG80211_WEXT=y
 CONFIG_MAC80211=y
@@ -166,9 +166,9 @@  CONFIG_MOUSE_PS2_ELANTECH=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=y
 CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_MAX11801=y
 CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
 CONFIG_TOUCHSCREEN_EDT_FT5X06=y
-CONFIG_TOUCHSCREEN_MAX11801=y
 CONFIG_TOUCHSCREEN_MC13783=y
 CONFIG_TOUCHSCREEN_TSC2004=y
 CONFIG_TOUCHSCREEN_TSC2007=y
@@ -177,7 +177,6 @@  CONFIG_TOUCHSCREEN_SX8654=y
 CONFIG_TOUCHSCREEN_COLIBRI_VF50=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_MMA8450=y
-CONFIG_HID_MULTITOUCH=y
 CONFIG_SERIO_SERPORT=m
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_IMX=y
@@ -237,7 +236,6 @@  CONFIG_V4L_PLATFORM_DRIVERS=y
 CONFIG_SOC_CAMERA=y
 CONFIG_V4L_MEM2MEM_DRIVERS=y
 CONFIG_VIDEO_CODA=m
-CONFIG_SOC_CAMERA_OV2640=y
 CONFIG_IMX_IPUV3_CORE=y
 CONFIG_DRM=y
 CONFIG_DRM_PANEL_SIMPLE=y
@@ -274,6 +272,7 @@  CONFIG_SND_SOC_CS42XX8_I2C=y
 CONFIG_SND_SOC_TLV320AIC3X=y
 CONFIG_SND_SOC_WM8960=y
 CONFIG_SND_SIMPLE_CARD=y
+CONFIG_HID_MULTITOUCH=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_MXC=y
@@ -388,7 +387,7 @@  CONFIG_PRINTK_TIME=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_SCHED_DEBUG is not set
-CONFIG_PROVE_LOCKING=y
+CONFIG_STACKTRACE=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
 # CONFIG_FTRACE is not set
 # CONFIG_ARM_UNWIND is not set