Re: problem building dev/e1000

2019-02-15 Thread Stefan Esser
Am 15.02.19 um 21:28 schrieb Warner Losh:
> On Fri, Feb 15, 2019 at 12:54 PM Ian Lepore  wrote:
> 
>> On Fri, 2019-02-15 at 12:32 -0700, Warner Losh wrote:
>>> On Fri, Feb 15, 2019 at 12:17 PM Ian Lepore  wrote:
>> I guess the question would be how many things does '...' represent now
>> and in the future?  What it would need to be, given our current
>> inflexible config(8) is
>>
>>  net/iflib.c optional ether pci em | ether pci igb | ...
>>
>> So if ... is 2 or 3 more drivers, that's not so bad.  If iflib is
>> eventually going to be used by dozens of drivers, even the parens would
>> make for a pretty ugly solution.
> 
> Immediately, there's at least half a dozen. Count on there being a dozen or
> two eventually.

I had been thinking about a dependencies file for config,
which either reports missing device/options lines, or adds
obvious dependencies.

This could also detect other missing pre-requisites, e.g.
if inet or inet6 is to be compiled in, but no link-layer
support (e.g. ether or wlan).

The same applies to iflib for drivers that need it, miibus,
CAM, ...

The purpose of such a dependency check would be a clear
indication of the missing definitions, especially if the
dependencies have been changed as with iflib becoming
non-standard.

Open points:

- How to generate these dependency files (could be derived
  from driver sources, e.g. an #include of some header might
  indicate that some "device xyz" is required).

- Loadable kernel modules are an alternate method to provide
  a device driver or protocol (the dependency check could in
  such cases warn that a driver is not compiled in and will
  be required in form of a LKM).


I have had a look at /sys/conf/files and have noticed that a
number of lines contain bugs. E.g. there are network drivers
that depend on "inet" and will not be compiled in if only
"inet6" has been selected in the config file.

Regards, STefan
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Warner Losh
On Fri, Feb 15, 2019 at 12:54 PM Ian Lepore  wrote:

> On Fri, 2019-02-15 at 12:32 -0700, Warner Losh wrote:
> > On Fri, Feb 15, 2019 at 12:17 PM Ian Lepore  wrote:
> >
> > > On Fri, 2019-02-15 at 10:53 -0800, Enji Cooper wrote:
> > > > > [...]
> > > >
> > > > HO Eric!
> > > >
> > > > iflib was a recently added requirement on stable/12 IIRC..?
> > > >
> > > > Does the manpage note this dependency, and is there an UPDATING
> > > > entry
> > > > for this change?
> > > >
> > > > Thanks!
> > > > -Enji
> > > >
> > >
> > > My question would be: why? If some drivers have a new dependency on
> > > iflib, why isn't that expressed in sys/conf/files and handled
> > > automatically?
> > >
> >
> > Right now we have
> >
> >  files:net/iflib.c optional ether pci iflib
> >
> > in the files file. This would need to change to
> >
> > files:net/iflib.c optional ether pci (em | igb | ...)
> >
> > but we don't have a () operator in config. Or we'd need dozens of
> > lines,
> > and the duplicate elimination code in config has been tricky (though
> > I
> > didn't check it just now).
> >
> > Warner
> >
>
> I guess the question would be how many things does '...' represent now
> and in the future?  What it would need to be, given our current
> inflexible config(8) is
>
>  net/iflib.c optional ether pci em | ether pci igb | ...
>
> So if ... is 2 or 3 more drivers, that's not so bad.  If iflib is
> eventually going to be used by dozens of drivers, even the parens would
> make for a pretty ugly solution.
>

Immediately, there's at least half a dozen. Count on there being a dozen or
two eventually.

MUST NOT RANT ABOUT CONFIG(8).

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Eric Joyner
ifdi_if.h is a system generated interface file that network drivers that
depend on iflib use. It's generated from ifdi_if.m in sys/net.

My guess is that you don't have "device iflib" defined in your kernel
configuration. em(4) depends on iflib in FreeBSD 12/13, and with r343617,
iflib is now explicitly a module that needs to be included in your kernel
config if you want to use a driver that depends on it. It's already in the
GENERIC kernel for amd64; are you using a kernel config file that doesn't
inherit from GENERIC?

- Eric
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Ian Lepore
On Fri, 2019-02-15 at 12:32 -0700, Warner Losh wrote:
> On Fri, Feb 15, 2019 at 12:17 PM Ian Lepore  wrote:
> 
> > On Fri, 2019-02-15 at 10:53 -0800, Enji Cooper wrote:
> > > > [...]
> > > 
> > > HO Eric!
> > > 
> > > iflib was a recently added requirement on stable/12 IIRC..?
> > > 
> > > Does the manpage note this dependency, and is there an UPDATING
> > > entry
> > > for this change?
> > > 
> > > Thanks!
> > > -Enji
> > > 
> > 
> > My question would be: why? If some drivers have a new dependency on
> > iflib, why isn't that expressed in sys/conf/files and handled
> > automatically?
> > 
> 
> Right now we have
> 
>  files:net/iflib.c optional ether pci iflib
> 
> in the files file. This would need to change to
> 
> files:net/iflib.c optional ether pci (em | igb | ...)
> 
> but we don't have a () operator in config. Or we'd need dozens of
> lines,
> and the duplicate elimination code in config has been tricky (though
> I
> didn't check it just now).
> 
> Warner
> 

I guess the question would be how many things does '...' represent now
and in the future?  What it would need to be, given our current
inflexible config(8) is

 net/iflib.c optional ether pci em | ether pci igb | ...

So if ... is 2 or 3 more drivers, that's not so bad.  If iflib is
eventually going to be used by dozens of drivers, even the parens would
make for a pretty ugly solution.

-- Ian

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Robert Huff
Lev Serebryakov writes:

>  > My question would be: why? If some drivers have a new 
>  > dependency on iflib, why isn't that expressed in sys/conf/files 
>  > and handled automatically?
>  
>   My question exactly.

I am so glad people who know what they're talking about have the
same response I did.  :-)


Respectcfully,


Robert Huff



___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Warner Losh
On Fri, Feb 15, 2019 at 12:17 PM Ian Lepore  wrote:

> On Fri, 2019-02-15 at 10:53 -0800, Enji Cooper wrote:
> > > On Feb 15, 2019, at 10:46, Eric Joyner  wrote:
> > >
> > > ifdi_if.h is a system generated interface file that network drivers
> > > that depend on iflib use. It's generated from ifdi_if.m in sys/net.
> > >
> > > My guess is that you don't have "device iflib" defined in your
> > > kernel configuration. em(4) depends on iflib in FreeBSD 12/13, and
> > > with r343617, iflib is now explicitly a module that needs to be
> > > included in your kernel config if you want to use a driver that
> > > depends on it. It's already in the GENERIC kernel for amd64; are
> > > you using a kernel config file that doesn't inherit from GENERIC?
> >
> > HO Eric!
> >
> > iflib was a recently added requirement on stable/12 IIRC..?
> >
> > Does the manpage note this dependency, and is there an UPDATING entry
> > for this change?
> >
> > Thanks!
> > -Enji
> >
>
> My question would be: why? If some drivers have a new dependency on
> iflib, why isn't that expressed in sys/conf/files and handled
> automatically?
>

Right now we have

 files:net/iflib.c optional ether pci iflib

in the files file. This would need to change to

files:net/iflib.c optional ether pci (em | igb | ...)

but we don't have a () operator in config. Or we'd need dozens of lines,
and the duplicate elimination code in config has been tricky (though I
didn't check it just now).

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Lev Serebryakov
On 15.02.2019 21:59, Ian Lepore wrote:

> My question would be: why? If some drivers have a new dependency on
> iflib, why isn't that expressed in sys/conf/files and handled
> automatically?
 My question exactly.

-- 
// Lev Serebryakov



signature.asc
Description: OpenPGP digital signature


Re: problem building dev/e1000

2019-02-15 Thread Ian Lepore
On Fri, 2019-02-15 at 10:53 -0800, Enji Cooper wrote:
> > On Feb 15, 2019, at 10:46, Eric Joyner  wrote:
> > 
> > ifdi_if.h is a system generated interface file that network drivers
> > that depend on iflib use. It's generated from ifdi_if.m in sys/net.
> > 
> > My guess is that you don't have "device iflib" defined in your
> > kernel configuration. em(4) depends on iflib in FreeBSD 12/13, and
> > with r343617, iflib is now explicitly a module that needs to be
> > included in your kernel config if you want to use a driver that
> > depends on it. It's already in the GENERIC kernel for amd64; are
> > you using a kernel config file that doesn't inherit from GENERIC?
> 
> HO Eric!
> 
> iflib was a recently added requirement on stable/12 IIRC..?
> 
> Does the manpage note this dependency, and is there an UPDATING entry
> for this change?
> 
> Thanks!
> -Enji
> 

My question would be: why? If some drivers have a new dependency on
iflib, why isn't that expressed in sys/conf/files and handled
automatically?

-- Ian

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Eric Joyner
Looking through the SVN logs, it looks like kib put an entry in the
stable/12 UPDATING in r344149 when he MFC'd the "make iflib a loadable
module" changes.

As for the em man page, they don't note the specific "device iflib"
dependency, so that needs to be added (as well as a more general update
since it looks like it's out of date). Though, there is at least a mention
of it using iflib near the bottom.

- Eric

On Fri, Feb 15, 2019 at 10:53 AM Enji Cooper  wrote:

>
> > On Feb 15, 2019, at 10:46, Eric Joyner  wrote:
> >
> > ifdi_if.h is a system generated interface file that network drivers that
> depend on iflib use. It's generated from ifdi_if.m in sys/net.
> >
> > My guess is that you don't have "device iflib" defined in your kernel
> configuration. em(4) depends on iflib in FreeBSD 12/13, and with r343617,
> iflib is now explicitly a module that needs to be included in your kernel
> config if you want to use a driver that depends on it. It's already in the
> GENERIC kernel for amd64; are you using a kernel config file that doesn't
> inherit from GENERIC?
>
> HO Eric!
>
> iflib was a recently added requirement on stable/12 IIRC..?
>
> Does the manpage note this dependency, and is there an UPDATING entry for
> this change?
>
> Thanks!
> -Enji
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Enji Cooper


> On Feb 15, 2019, at 10:46, Eric Joyner  wrote:
> 
> ifdi_if.h is a system generated interface file that network drivers that 
> depend on iflib use. It's generated from ifdi_if.m in sys/net.
> 
> My guess is that you don't have "device iflib" defined in your kernel 
> configuration. em(4) depends on iflib in FreeBSD 12/13, and with r343617, 
> iflib is now explicitly a module that needs to be included in your kernel 
> config if you want to use a driver that depends on it. It's already in the 
> GENERIC kernel for amd64; are you using a kernel config file that doesn't 
> inherit from GENERIC?

HO Eric!

iflib was a recently added requirement on stable/12 IIRC..?

Does the manpage note this dependency, and is there an UPDATING entry for this 
change?

Thanks!
-Enji
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Panic in sys_fstatat()

2019-02-15 Thread Steve Kargl
On Fri, Feb 15, 2019 at 09:50:55AM +0200, Andriy Gapon wrote:
> 
> So, I suspect something exotic like some sort of a stack alignment issue, or a
> CPU bug, or a mismatch between object files, or some local experiment, etc.
> 

You might be right about something exotic.  It is an old
laptop, so it could be showing signs of hardware failure.
I'm also unfortuntely trying to solve an issue with
drm-legacy-kmod.  In building several different kernels
over a few different revisions of -current, I seem to have
jump across the introduction of ifunc into the linkers.

I'll see if I can come up with a repeatable method for
causing the panic.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: problem building dev/e1000

2019-02-15 Thread Konstantin Belousov
On Thu, Feb 14, 2019 at 04:24:28PM -0500, Robert Huff wrote:
> 
>   On a system running:
> 
> FreeBSD 13.0-CURRENT r343080  amd64
> 
>   with source tree updated at midnight last night, attempts to
> build a kernel with "device em" die with:
Did you added 'device iflib' to your kernel config ?

> 
> 
> ctfconvert -L VERSION -g efirtc.o
> cc -target x86_64-unknown-freebsd13.0 
> --sysroot=/usr/obj/usr/src/amd64.amd64/tmp 
> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -c -O2 -pipe -fno-strict-aliasing  
> -g -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include 
> -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include 
> opt_global.h   -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD  
> -MF.depend.if_em.o -MTif_em.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse 
> -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv 
> -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs 
> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef 
> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs 
> -fdiagnostics-show-option -Wno-unknown-pragmas 
> -Wno-error-tautological-compare -Wno-error-empty-body 
> -Wno-error-parentheses-equality -Wno-error-unused-function 
> -Wno-error-pointer-sign -Wno-error-shift-negative-value 
> -Wno-address-of-packed-member  -mno-
 ae
>  s -mno-avx  -std=iso9899:1999 -Werror  /usr/src/sys/dev/e1000/if_em.c 
> -I/usr/src/sys/dev/e1000
> In file included from /usr/src/sys/dev/e1000/if_em.c:30:
> /usr/src/sys/dev/e1000/if_em.h:91:10: fatal error: 'ifdi_if.h' file not found
> #include "ifdi_if.h"
>  ^~~
> 1 error generated.
> *** Error code 1
> 
> 
>   'ifdi_if.h' is not in the local e1000 direstory, nor is it in the
> equavalent place in the svn repository on FreeBSD.org.
>   Is this something I'm doing wrong?  Or is there a problem in
> "if_em.h"?
> 
> 
>   Respectfully,
> 
> 
>   Robert Huff
> ___
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"