From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755563AbcIINJm (ORCPT ); Fri, 9 Sep 2016 09:09:42 -0400 Received: from mail.savoirfairelinux.com ([208.88.110.44]:34135 "EHLO mail.savoirfairelinux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754701AbcIINJi (ORCPT ); Fri, 9 Sep 2016 09:09:38 -0400 From: Vivien Didelot To: Stephen Hemminger Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" Subject: Re: [PATCH net-next] net: bridge: add helper to call /sbin/bridge-stp In-Reply-To: <20160908175857.35565496@xeon-e3> References: <20160908165043.31042-1-vivien.didelot@savoirfairelinux.com> <20160908175857.35565496@xeon-e3> User-Agent: Notmuch/0.22.1 (http://notmuchmail.org) Emacs/24.5.1 (x86_64-unknown-linux-gnu) Date: Fri, 09 Sep 2016 09:09:32 -0400 Message-ID: <87lgz143ub.fsf@ketchup.mtl.sfl> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stephen, Stephen Hemminger writes: > On Thu, 8 Sep 2016 12:50:43 -0400 > Vivien Didelot wrote: > >> If /sbin/bridge-stp is available on the system, bridge tries to execute >> it instead of the kernel implementation when starting/stopping STP. >> >> If anything goes wrong with /sbin/bridge-stp, bridge silently falls back >> to kernel STP, making hard to debug userspace STP. >> >> This patch adds a br_stp_call_user helper to start/stop userspace STP >> and debug errors from the program: abnormal exit status is stored in the >> lower byte and normal exit status is stored in higher byte. >> >> Below is a simple example on a kernel with dynamic debug enabled: >> >> # ln -s /bin/false /sbin/bridge-stp >> # brctl stp br0 on >> br0: failed to start userspace STP (256) >> # dmesg >> br0: /sbin/bridge-stp exited with code 1 >> br0: failed to start userspace STP (256) >> br0: using kernel STP >> >> Signed-off-by: Vivien Didelot > > I understand that debugging STP is hard. But this solution looks like it > would break existing userspace because you changed an API. My commit message might not be clear enough, sorry about that. This patch does not bring any functional changes. It factorizes the two calls to call_usermodehelper in a br_stp_call_user function, which prints debug messages for userspace errors if the program gets killed (e.g. ABRT) or exited with non-zero status. br_err is used if userspace STP start/stop fails, which gives direct diagnostic to the user. I can provide more example scenarios if you wish to. Thanks, Vivien