From patchwork Fri Aug 7 12:20:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juerg Haefliger X-Patchwork-Id: 1342256 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BNPb42Dwgz9sTQ; Fri, 7 Aug 2020 22:20:48 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1k41MX-0006Vg-U0; Fri, 07 Aug 2020 12:20:41 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1k41MW-0006VZ-6d for kernel-team@lists.ubuntu.com; Fri, 07 Aug 2020 12:20:40 +0000 Received: from mail-ej1-f72.google.com ([209.85.218.72]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k41MV-0005lN-Vd for kernel-team@lists.ubuntu.com; Fri, 07 Aug 2020 12:20:40 +0000 Received: by mail-ej1-f72.google.com with SMTP id m24so737418eje.20 for ; Fri, 07 Aug 2020 05:20:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=007Z/qjHtpVR5UZCpTNizHukgwHCGdSBfzwXp5HUnhA=; b=eF3Ns9RjcnxuU/+dLyGi7zASSaF7zZNMyAFQTMjtBUjq2KmDqdYzooDFonoYg8Rz0F 3eH0aQ3Cplaj6P1E5edi8ZKjjAsUdOTu04PmFL2VEH8+IpRTodAMro1mvE0ExaBnO77f B3/K0JRe978Cd3XMlNZi/whZpVtnjRaqMZFSouVuVYOKirf/c86r5FhAfrKH03TGu+rQ c6QTG3hBA/JqPzuwSTq73lWYpGGU/YIDeh3gOJGtjuVsAezz5gImS+3EoDaN+T6mBWHD h9DIP9GWyQrIWGx9HcyGiO+qqmqpbon9yKXbMr9kUhs0Tc3xrh71Ljfj4x/h5DBNNNFf NWAA== X-Gm-Message-State: AOAM533QFKZU6SnzfpOf/Bd6oMCpme4QXx0ZmNxNcpmrZQlZ/7juHqhI ILtSR0SvlUCgR4slH58TK/t3HF/zybl8dWHdcJe+wO9SPVrPKG/CWyYctfPopOvmNWBMxDKCo8P dA0FZDMvCfcRFNOE58SxVZ31colbr+GaAlO3bwbbOLQ== X-Received: by 2002:a05:6402:3193:: with SMTP id di19mr8691963edb.224.1596802839323; Fri, 07 Aug 2020 05:20:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyde52iC2c20vbUhfY7I0fRRuiUae5k/y5bBXOXse0m3eoMS9MWHrvKmUUAboleyo2IZeBN9A== X-Received: by 2002:a05:6402:3193:: with SMTP id di19mr8691945edb.224.1596802838976; Fri, 07 Aug 2020 05:20:38 -0700 (PDT) Received: from gollum.fritz.box ([2001:67c:1560:8007::aac:c064]) by smtp.gmail.com with ESMTPSA id ov10sm5795399ejb.6.2020.08.07.05.20.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2020 05:20:38 -0700 (PDT) From: Juerg Haefliger X-Google-Original-From: Juerg Haefliger To: kernel-team@lists.ubuntu.com Subject: [SRU][F/linux-raspi][PATCH] UBUNTU: [Config] Switch from PREEMPT_VOLUNTARY to PREEMPT Date: Fri, 7 Aug 2020 14:20:05 +0200 Message-Id: <20200807122005.264328-1-juergh@canonical.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1890808 BugLink: https://bugs.launchpad.net/bugs/1880388 BugLink: https://bugs.launchpad.net/bugs/1887831 CONFIG_PREEMPT was accidentially disabled (and CONFIG_PREEMPT_VOLUNTARY enabled instead) with the Disco release of the raspi kernel. That should not have happened and is by itself reason enough to change it back. Furthermore, this change uncovered a locking issue in the dwc_otg driver. With CONFIG_PROVE_LOCKING=y: [ 197.032171] ================================ [ 197.039097] WARNING: inconsistent lock state [ 197.046003] 5.4.44 #7 Not tainted [ 197.051856] -------------------------------- [ 197.058617] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 197.067139] minicom/823 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 197.074711] ffff00003530f098 (&((spinlock_t *)hcd->lock)->rlock){?.-.}, at: DWC_SPINLOCK_IRQSAVE+0x24/0x38 [ 197.089460] {IN-HARDIRQ-W} state was registered at: [ 197.096982] lock_acquire+0xd0/0x210 [ 197.103208] _raw_spin_lock+0x3c/0x50 [ 197.109427] DWC_SPINLOCK+0x20/0x30 [ 197.115370] dwc_otg_handle_common_intr+0x5c/0xdc0 [ 197.122589] dwc_otg_common_irq+0x20/0x38 [ 197.128917] __handle_irq_event_percpu+0xb8/0x360 [ 197.135970] handle_irq_event_percpu+0x3c/0x98 [ 197.142737] handle_irq_event+0x4c/0x80 [ 197.148784] handle_level_irq+0xbc/0x140 [ 197.154867] generic_handle_irq+0x34/0x50 [ 197.161024] bcm2836_chained_handle_irq+0x50/0x70 [ 197.167903] generic_handle_irq+0x34/0x50 [ 197.174047] __handle_domain_irq+0x6c/0xc0 [ 197.180277] bcm2836_arm_irqchip_handle_irq+0x74/0xe0 [ 197.187517] el1_irq+0x108/0x200 [ 197.192874] arch_cpu_idle+0x3c/0x1c8 [ 197.198624] default_idle_call+0x24/0x48 [ 197.204593] do_idle+0x210/0x2a0 [ 197.209757] cpu_startup_entry+0x2c/0x30 [ 197.215545] secondary_start_kernel+0x134/0x1b8 [ 197.221929] irq event stamp: 11518 [ 197.227047] hardirqs last enabled at (11517): [] el0_svc_common.constprop.0+0x10c/0x1e8 [ 197.240513] hardirqs last disabled at (11518): [] _raw_spin_lock_irqsave+0x30/0x78 [ 197.253784] softirqs last enabled at (11506): [] __do_softirq+0x400/0x488 [ 197.266666] softirqs last disabled at (11481): [] irq_exit+0xfc/0x130 So reenable CONFIG_PREEMPT which gets rid of the above warning and brings us back in line with Bionic (and upstream raspberrypi as well). Signed-off-by: Juerg Haefliger Acked-by: Andrea Righi Acked-by: Paolo Pisati --- debian.raspi/config/config.common.ubuntu | 63 ++++-------------------- 1 file changed, 9 insertions(+), 54 deletions(-) diff --git a/debian.raspi/config/config.common.ubuntu b/debian.raspi/config/config.common.ubuntu index df7a4c6cf3cf..4f8355ed3f67 100644 --- a/debian.raspi/config/config.common.ubuntu +++ b/debian.raspi/config/config.common.ubuntu @@ -250,32 +250,6 @@ CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y # CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_HISI is not set -CONFIG_ARCH_INLINE_READ_LOCK=y -CONFIG_ARCH_INLINE_READ_LOCK_BH=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_READ_UNLOCK=y -CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_SPIN_LOCK=y -CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_WRITE_LOCK=y -CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_K3 is not set @@ -1093,6 +1067,7 @@ CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_CEC_CORE=y +# CONFIG_CEC_GPIO is not set CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FS=m @@ -1594,6 +1569,7 @@ CONFIG_DEBUG_MISC=y # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_DEBUG_PINCTRL is not set # CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_RSEQ is not set # CONFIG_DEBUG_RT_MUTEXES is not set @@ -3095,31 +3071,6 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set CONFIG_INIT_STACK_NONE=y -CONFIG_INLINE_READ_LOCK=y -CONFIG_INLINE_READ_LOCK_BH=y -CONFIG_INLINE_READ_LOCK_IRQ=y -CONFIG_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_BH=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_SPIN_LOCK=y -CONFIG_INLINE_SPIN_LOCK_BH=y -CONFIG_INLINE_SPIN_LOCK_IRQ=y -CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_INLINE_SPIN_TRYLOCK=y -CONFIG_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_WRITE_LOCK=y -CONFIG_INLINE_WRITE_LOCK_BH=y -CONFIG_INLINE_WRITE_LOCK_IRQ=y -CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_BH=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y CONFIG_INOTIFY_USER=y CONFIG_INPUT=y CONFIG_INPUT_88PM80X_ONKEY=m @@ -5342,13 +5293,17 @@ CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set CONFIG_PPTP=m -# CONFIG_PREEMPT is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPTION=y # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_PREEMPTIRQ_EVENTS is not set CONFIG_PREEMPTIRQ_TRACEPOINTS=y +CONFIG_PREEMPT_COUNT=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_NOTIFIERS=y -CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREEMPT_RCU=y +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_PRINTER=m CONFIG_PRINTK=y @@ -7161,7 +7116,6 @@ CONFIG_TRACING=y CONFIG_TRACING_MAP=y CONFIG_TRACING_SUPPORT=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_TREE_RCU=y CONFIG_TREE_SRCU=y CONFIG_TRUSTED_FOUNDATIONS=y CONFIG_TRUSTED_KEYS=y @@ -7234,6 +7188,7 @@ CONFIG_ULTRIX_PARTITION=y CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_UNICODE=y # CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set +CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_UNISYSSPAR=y CONFIG_UNIX=y CONFIG_UNIX98_PTYS=y