Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Oct 2020 16:06:43 +0200
From:      "Kristof Provost" <kp@FreeBSD.org>
To:        "Alexander Leidinger" <Alexander@leidinger.net>
Cc:        "Shawn Webb" <shawn.webb@hardenedbsd.org>, "FreeBSD Current" <freebsd-current@freebsd.org>
Subject:   Re: iflib/bridge kernel panic
Message-ID:  <B851D1E5-7824-4BD3-A4AF-5F2EDA44D88E@FreeBSD.org>
In-Reply-To: <20200930135225.Horde.nVCxwqfnkoJfolbDU0hqqXf@webmail.leidinger.net>
References:  <CAExMvskTkVprZsfXHBUv9stpiCo1QBAzoOg1VrWd4kRbz0NyJg@mail.gmail.com> <58CADEBB-64FD-414E-AB19-E4F8D3CABCA5@FreeBSD.org> <20200921121627.3dovpumnl6xub3kn@mutt-hbsd> <7FE1F106-2CEE-4692-95D0-14C5229ED768@FreeBSD.org> <20200928124531.Horde.0EjsBzIG5ktLzby_tFcoPPS@webmail.leidinger.net> <33903BFF-4158-4CD9-AD79-360BCD81F1C9@FreeBSD.org> <20200928164410.Horde.mYBkuEeD_Q6xgnKnwNomv7P@webmail.leidinger.net> <6A5EFCFA-C0DC-4DEF-834B-2F9E4FCC8812@FreeBSD.org> <20200930135225.Horde.nVCxwqfnkoJfolbDU0hqqXf@webmail.leidinger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 30 Sep 2020, at 13:52, Alexander Leidinger wrote:
> Quoting Kristof Provost <kp@freebsd.org> (from Tue, 29 Sep 2020 =

> 23:20:44 +0200):
>
>> On 28 Sep 2020, at 16:44, Alexander Leidinger wrote:
>>
>>> Quoting Kristof Provost <kp@freebsd.org> (from Mon, 28 Sep 2020 =

>>> 13:53:16 +0200):
>>>
>>>> On 28 Sep 2020, at 12:45, Alexander Leidinger wrote:
>>>>> Quoting Kristof Provost <kp@freebsd.org> (from Sun, 27 Sep 2020 =

>>>>> 17:51:32 +0200):
>>>>>> Here=E2=80=99s an early version of a task queue based approach: =

>>>>>> http://people.freebsd.org/~kp/0001-bridge-Cope-with-if_ioctl-s-tha=
t-sleep.patch
>>>>>>
>>>>>> That still needs to be cleaned up, but this should resolve the =

>>>>>> sleep issue and the LOR.
>>>>>
>>>>> There are some issues... seems like inside a jail I can't ping =

>>>>> systems outside of the hardware.
>>>>>
>>>>> Bridge setup:
>>>>>   - member jail A
>>>>>   - member jail B
>>>>>   - member external_if of host
>>>>>
>>>>> If I ping the router from the host, it works. If I ping from one =

>>>>> jail to another, it works. If I ping from the jail to the IP of =

>>>>> the external_if, it works. If I ping from a jail to the router, I =

>>>>> do not get a response.
>>>>>
>>>> Can you check for 'failed ifpromisc' error messages in dmesg? And =

>>>> verify that all bridge member interfaces are in promiscuous mode?
>>>
>>> I have a panic for you...:
>>> - startup still in progress =3D 22 jails in startup, somewhere after =
a =

>>> few jails started the panic happened
>>> - tcpdump was running on the external interface
>>> - a ping to a jail IP from another system was running, the first =

>>> ping went through, then it paniced
>>>
>>> First regarding your questions about promisc mode: no error, but the =

>>> promisc mode is directly disabled again on all interfaces.
>>>
>> I think I see why you had issues with the promiscuous setting. I=E2=80=
=99ve =

>> updated the patch to be even more horrific than it was before.
>
> Hmmm.... same behavior as before.
> I haven't kept the old version of the patch, so I can't compare if I =

> somehow downloaded the old version again, or if I got the updated =

> one...
>
Okay, let=E2=80=99s abandon that patch. It=E2=80=99s ugly and it doesn=E2=
=80=99t work.

Here=E2=80=99s a different approach that I=E2=80=99m much happier with.
https://people.freebsd.org/~kp/0001-bridge-Call-member-interface-ioctl-wi=
thout-NET_EPOCH.patch

It passes the regression tests with WITNESS and INVARIANTS enabled, and =

a hack in the epair ioctl() handler to make it sleep (to look a bit like =

the Intel ioctl() handler that currently trips up if_bridge).

Best,
Kristof



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B851D1E5-7824-4BD3-A4AF-5F2EDA44D88E>