Page MenuHomeFreeBSD
Feed Advanced Search

Jan 27 2019

jah updated the summary of D18989: Allow stdio access to be revoked from casper services.
Jan 27 2019, 7:04 AM
jah added a comment to D18989: Allow stdio access to be revoked from casper services.

Other than reverting r341692, this is the simplest thing that works. But I'm a complete libcasper n00b, so I'm not sure if this is the ideal approach.
Should we instead have something finer-grained (maybe the ability to revoke an individual fd from the service), and/or something like the ability to specify whether stdio/fds should be inherited through the call to cap_service_open() instead of being baked into the service declaration?

Jan 27 2019, 7:03 AM
jah added reviewers for D18989: Allow stdio access to be revoked from casper services: oshogbo, markj, capsicum.
Jan 27 2019, 7:00 AM
jah created D18989: Allow stdio access to be revoked from casper services.
Jan 27 2019, 6:59 AM

Jan 21 2019

jah committed rS343254: MFC r343005: Handle SIGIO for listening sockets.
MFC r343005: Handle SIGIO for listening sockets
Jan 21 2019, 8:25 AM

Jan 13 2019

jah closed D18664: Handle SIGIO for listening sockets.
Jan 13 2019, 8:34 PM
jah committed rS343005: Handle SIGIO for listening sockets.
Handle SIGIO for listening sockets
Jan 13 2019, 8:34 PM
jah updated the summary of D18664: Handle SIGIO for listening sockets.
Jan 13 2019, 9:28 AM

Jan 4 2019

jah added a comment to D18664: Handle SIGIO for listening sockets.

ping...does anyone want to review?

Jan 4 2019, 5:30 PM

Jan 1 2019

jah added a comment to D18664: Handle SIGIO for listening sockets.

You may be able to add something to /usr/src/tests/sys/

Jan 1 2019, 1:44 PM

Dec 27 2018

jah updated the test plan for D18664: Handle SIGIO for listening sockets.
Dec 27 2018, 7:53 PM
jah created D18664: Handle SIGIO for listening sockets.
Dec 27 2018, 7:48 PM

Dec 18 2018

jah added inline comments to D18593: mips32: move support for temporary mappings above KSEG0 to per-CPU data.
Dec 18 2018, 6:02 AM
jah added inline comments to D18593: mips32: move support for temporary mappings above KSEG0 to per-CPU data.
Dec 18 2018, 5:55 AM
jah added reviewers for D18593: mips32: move support for temporary mappings above KSEG0 to per-CPU data: jmallett, adrian, ian, kan.
Dec 18 2018, 5:54 AM
jah updated the diff for D18593: mips32: move support for temporary mappings above KSEG0 to per-CPU data.

Remove unintended README change

Dec 18 2018, 5:53 AM
jah created D18593: mips32: move support for temporary mappings above KSEG0 to per-CPU data.
Dec 18 2018, 5:50 AM

Jul 11 2018

jah committed rS320528: Clean up MD pollution of bus_dma.h:.
Clean up MD pollution of bus_dma.h:
Jul 11 2018, 9:40 AM
jah closed D10729: Cleanup MD pollution of MI busdma header.
Jul 11 2018, 9:40 AM

Jul 10 2018

jah committed rS336155: MFC r328489, r329232, r331836.
MFC r328489, r329232, r331836
Jul 10 2018, 1:06 AM

Mar 31 2018

jah committed rS331836: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
Remove MK_AUTO_OBJ from env passed to PORTS_MODULES
Mar 31 2018, 5:17 AM
jah closed D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
Mar 31 2018, 5:17 AM

Mar 29 2018

jah retitled D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES from Build PORTS_MODULES against staged system makefiles, remove MK_AUTO_OBJ/MKOBJDIR to Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
Mar 29 2018, 4:19 PM

Mar 26 2018

jah updated the summary of D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
Mar 26 2018, 7:17 AM

Mar 11 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
In D14143#304010, @jah wrote:
In D14143#301044, @jah wrote:

I fixed the problem differently in r329232

I don't think just getting rid of MAKEOBJDIR is enough.
With PORTS_MODULES=x11/nvidia-driver in an otherwise empty src.conf, and an empty src.env.conf, I get this during installkernel when I try to build HEAD using 'make buildkernel; make installkernel':

> src (install)

> src/nvidia (install)

install -T release -o root -g wheel -m 555 nvidia.ko /usr/obj/usr/src/amd64.amd64/sys/GENERIC/usr/ports/x11/nvidia-driver/work/stage/boot/modules/
install: nvidia.ko: No such file or directory

  • Error code 71

buildkernel sets MK_AUTO_OBJ=yes while installkernel sets MK_AUTO_OBJ=no.
It looks like this produces some disagreement in where the build output goes. That's why I also removed MK_AUTO_OBJ in this review.
I think you have to do that or something like it to get everything on the same page; adding MK_AUTO_OBJ=yes to PORTSMODULESENV would also work but seems riskier and less correct.

Do you want to fix this or should I?

Mar 11 2018, 9:58 PM

Feb 24 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
In D14143#301044, @jah wrote:

I fixed the problem differently in r329232

I don't think just getting rid of MAKEOBJDIR is enough.
With PORTS_MODULES=x11/nvidia-driver in an otherwise empty src.conf, and an empty src.env.conf, I get this during installkernel when I try to build HEAD using 'make buildkernel; make installkernel':

> src (install)

> src/nvidia (install)

install -T release -o root -g wheel -m 555 nvidia.ko /usr/obj/usr/src/amd64.amd64/sys/GENERIC/usr/ports/x11/nvidia-driver/work/stage/boot/modules/
install: nvidia.ko: No such file or directory

  • Error code 71

buildkernel sets MK_AUTO_OBJ=yes while installkernel sets MK_AUTO_OBJ=no.
It looks like this produces some disagreement in where the build output goes. That's why I also removed MK_AUTO_OBJ in this review.
I think you have to do that or something like it to get everything on the same page; adding MK_AUTO_OBJ=yes to PORTSMODULESENV would also work but seems riskier and less correct.

Feb 24 2018, 6:51 PM
jah updated the diff for D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.

Get rid of staging, remove MK_AUTO_OBJ

Feb 24 2018, 6:50 PM

Feb 14 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.

I fixed the problem differently in r329232

Feb 14 2018, 4:17 AM

Feb 10 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
In D14143#299639, @jah wrote:

Which port inspired the need for D13053 due to the LDADD/LIBADD problem?
I cannot recreate the issue being reported on current@. I'm still not fond of staging file like this as it is a ~4th way of system files being read. I'd rather go the other direction and always install everything.
Anyway, since I cannot recreate the newly reported issue I want to look at the port you ran into a problem with and see if I can rework D13053.

That would be multimedia/cx88 (which surprisingly, people still use:). I created that port a long time ago, before PORTS_MODULES was even a thing; besides the kmods there's also a userspace utility in there, and that's the part that fails in 11.0+ due to src.libnames.mk.

But like I said in the review for D13053, maybe the real right answer is to just split ports like that up, so the kmods are in a separate port by themselves?
I'm still the maintainer for cx88, so I can make that happen :)

I did all this because I thought maybe I could make PORTS_MODULES more flexible without adding too much complexity, and staging is just an extension of that. But if that's just going to create a maintenance headache that's worse than any problem it might fix, let's not do it that way.

Feb 10 2018, 4:34 AM
jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.

Which port inspired the need for D13053 due to the LDADD/LIBADD problem?
I cannot recreate the issue being reported on current@. I'm still not fond of staging file like this as it is a ~4th way of system files being read. I'd rather go the other direction and always install everything.
Anyway, since I cannot recreate the newly reported issue I want to look at the port you ran into a problem with and see if I can rework D13053.

Feb 10 2018, 12:26 AM

Feb 9 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
In D14143#296975, @jah wrote:

Is this fixing something? It's adding more complexity.

Killing MK_AUTO_OBJ/MKOBJDIR fixes the installkernel failure described at https://lists.freebsd.org/pipermail/freebsd-current/2018-January/068319.html
I wouldn't be surprised if there's a cleaner way to do that though.

The staging part is more of a conceptual thing. We're already setting OSVERSION and SRC_BASE to build the port as though it's being built against the updated OS. It seems like we should also be building it against the system makefiles as they would be installed on the updated OS. Just setting SYSDIR might not be enough; sys/conf/kmod.mk still pulls bsd.init.mk and bsd.compiler.mk from the system makefile path, not to mention any non-kmod components of the port. It seems reasonably likely that mismatches between those makefiles and e.g. the environment created by buildkernel/installkernel could cause problems on something like a major version upgrade. That said, I did not see any problems when testing an 11->12 upgrade either before or after this change.

Feb 9 2018, 6:36 AM

Feb 1 2018

jah added a comment to D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.

Is this fixing something? It's adding more complexity.

Feb 1 2018, 5:06 AM

Jan 31 2018

jah updated the diff for D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.

Add dep on share/mk contents

Jan 31 2018, 10:02 AM
jah added a reviewer for D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES: bdrewery.
Jan 31 2018, 7:13 AM
jah created D14143: Remove MK_AUTO_OBJ from env passed to PORTS_MODULES.
Jan 31 2018, 7:12 AM

Jan 27 2018

jah committed rS328489: Remove system makefile path directives from env passed to PORTS_MODULES step.
Remove system makefile path directives from env passed to PORTS_MODULES step
Jan 27 2018, 8:13 PM
jah closed D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.
Jan 27 2018, 8:13 PM

Jan 20 2018

jah added a comment to D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.

ping

Jan 20 2018, 8:24 PM

Dec 2 2017

jah updated the diff for D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.

Remove only -m directives from MAKEFLAGS

Dec 2 2017, 8:48 PM

Nov 14 2017

jah added a comment to D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.

We could also kill off just the -m directives in MAKEFLAGS. A one-liner like this should do it:

Nov 14 2017, 6:32 PM
jah added a comment to D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.

I think removing MAKEFLAGS may be too much. I think we can just add MAKESYSPATH=/usr/share/mk to the environment and should also set _WITHOUT_SRCCONF=yes.

Nov 14 2017, 6:03 AM

Nov 12 2017

jah added reviewers for D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES: bapt, bdrewery.
Nov 12 2017, 3:34 AM
jah created D13053: Remove MAKEFLAGS and MAKESYSPATH from env passed to PORTS_MODULES.
Nov 12 2017, 3:34 AM

Aug 1 2017

jah committed rS321835: Add myself to FreeBSD calendar.
Add myself to FreeBSD calendar
Aug 1 2017, 1:40 AM

Jul 1 2017

jah committed rS320545: Bump __FreeBSD_version due to r320528, cleanup and inlining of.
Bump __FreeBSD_version due to r320528, cleanup and inlining of
Jul 1 2017, 3:59 PM

Jun 22 2017

jah updated the diff for D10729: Cleanup MD pollution of MI busdma header.

Style(9) fixes

Jun 22 2017, 5:34 AM

Jun 21 2017

jah added a comment to D10729: Cleanup MD pollution of MI busdma header.

ping...Marius/Andrew, are you guys ok with the change as it is now?

Jun 21 2017, 6:08 PM

Jun 10 2017

jah added inline comments to D10729: Cleanup MD pollution of MI busdma header.
Jun 10 2017, 6:11 AM

Jun 9 2017

jah added inline comments to D10729: Cleanup MD pollution of MI busdma header.
Jun 9 2017, 4:05 AM
jah updated the diff for D10729: Cleanup MD pollution of MI busdma header.

Use correct include path for arm64 bus_dma_impl.h

Jun 9 2017, 3:58 AM

Jun 8 2017

jah added a comment to D10729: Cleanup MD pollution of MI busdma header.
In D10729#228105, @jah wrote:
In D10729#222257, @jah wrote:

Would there be any concern about performance implications of un-inlining the NULL checks for x86 and the map calls for sparc64?
Maybe network adapters that need high-frequency mbuf operations?

One alternative I'd considered was to let each MD bus_dma.h #define something like WANT_INLINE_DMAMAP.
If set that would change the bus_dmamap* declarations in bus_dma.h to static inline. That would still be a lot
cleaner than what we have now. If we did that, then:
--we could re-inline the sparc64 implementation
--we could inline the x86 and arm64 dmamap calls, which have been sparc64-like function-pointer calls since
Intel DMAR support was added
--for x86 we could move the NULL checks back out to the inlined functions, removing any function call
penalty for no-op maps.

Testing at work with 40 G NICs and a userland IP stack has show that de-inlining such kind of wrappers has a
quite measurable impact on throughput (it's still in the noise with 10 G, though). So given that the performance
of I/O gear also is ever increasing and given that it's not too much hassle, I'd actually prefer your suggested
approach of optional inlining based on a (WANT_)INLINE_DMAMAP macro.

That's a good data point, thank you for testing on that hardware.
How much did the performance penalty as a % end up being for the 40G case?

Inlining alloc_iov() there, i. e. reverting 94210486, results in a ~ 0.4 % improvement of mean performance
with 40 G NICs:
https://github.com/NTAP/warpcore/blob/master/lib/src/warpcore.c
In principle, alloc_iov() is similar to _bus_dmamap_load_buffer() in terms of functionality (get/load a raw
buffer) and usage, i. e. repeatedly called per payload buffer and mbuf respectively. This might also
translate to bus_dmamap_sync() as - although it makes no sense to call that function in a loop -, sending/
receiving one packet requires at least a few invocations (with different DMA maps and/or operations).

Jun 8 2017, 7:41 AM
jah updated the diff for D10729: Cleanup MD pollution of MI busdma header.

Allow MD busdma implementations to provide inline map functions

Jun 8 2017, 7:34 AM

Jun 1 2017

jah added a comment to D10729: Cleanup MD pollution of MI busdma header.
In D10729#222257, @jah wrote:

Would there be any concern about performance implications of un-inlining the NULL checks for x86 and the map calls for sparc64?
Maybe network adapters that need high-frequency mbuf operations?

One alternative I'd considered was to let each MD bus_dma.h #define something like WANT_INLINE_DMAMAP.
If set that would change the bus_dmamap* declarations in bus_dma.h to static inline. That would still be a lot
cleaner than what we have now. If we did that, then:
--we could re-inline the sparc64 implementation
--we could inline the x86 and arm64 dmamap calls, which have been sparc64-like function-pointer calls since
Intel DMAR support was added
--for x86 we could move the NULL checks back out to the inlined functions, removing any function call
penalty for no-op maps.

Testing at work with 40 G NICs and a userland IP stack has show that de-inlining such kind of wrappers has a
quite measurable impact on throughput (it's still in the noise with 10 G, though). So given that the performance
of I/O gear also is ever increasing and given that it's not too much hassle, I'd actually prefer your suggested
approach of optional inlining based on a (WANT_)INLINE_DMAMAP macro.

Jun 1 2017, 12:01 AM

May 27 2017

jah added a comment to D10729: Cleanup MD pollution of MI busdma header.
In D10729#223080, @kib wrote:

I gnerally like this simplification.

I do not believe that moving NULL checks into non-inline path would have significant (or measurable) effect on operation of any device.

May 27 2017, 10:10 PM

May 15 2017

jah updated the summary of D10729: Cleanup MD pollution of MI busdma header.
May 15 2017, 4:49 AM
jah added a comment to D10729: Cleanup MD pollution of MI busdma header.

Would there be any concern about performance implications of un-inlining the NULL checks for x86 and the map calls for sparc64?
Maybe network adapters that need high-frequency mbuf operations?

May 15 2017, 4:48 AM
jah updated the summary of D10729: Cleanup MD pollution of MI busdma header.
May 15 2017, 4:40 AM
jah created D10729: Cleanup MD pollution of MI busdma header.
May 15 2017, 4:36 AM

Feb 19 2017

jah committed rS313930: Bring back r313037, with fixes for mips:.
Bring back r313037, with fixes for mips:
Feb 19 2017, 2:03 AM
jah closed D9587: Bring back r313037, with fixes for mips by committing rS313930: Bring back r313037, with fixes for mips:.
Feb 19 2017, 2:03 AM

Feb 17 2017

jah committed rS313862: MFC r312952:.
MFC r312952:
Feb 17 2017, 7:09 AM

Feb 15 2017

jah committed rS313766: MFC r312610, r312792.
MFC r312610, r312792
Feb 15 2017, 10:35 AM

Feb 14 2017

jah added reviewers for D9587: Bring back r313037, with fixes for mips: kan, lidl, andreast.
Feb 14 2017, 3:40 AM
jah retitled D9587: Bring back r313037, with fixes for mips from to Bring back r313037, with fixes for mips.
Feb 14 2017, 3:38 AM

Feb 4 2017

jah committed rS313193: Revert r313037.
Revert r313037
Feb 4 2017, 6:25 AM

Feb 1 2017

jah committed rS313037: Implement get_pcpu() for the remaining architectures and use it to.
Implement get_pcpu() for the remaining architectures and use it to
Feb 1 2017, 3:33 AM

Jan 29 2017

jah committed rS312952: Implement get_pcpu() for i386 and use it to replace pcpu_find(curcpu).
Implement get_pcpu() for i386 and use it to replace pcpu_find(curcpu)
Jan 29 2017, 4:55 PM
jah closed D9370: Implement get_pcpu() for i386 by committing rS312952: Implement get_pcpu() for i386 and use it to replace pcpu_find(curcpu).
Jan 29 2017, 4:55 PM
jah updated the diff for D9370: Implement get_pcpu() for i386.

Whitespace fixes

Jan 29 2017, 4:26 PM
jah added inline comments to D9370: Implement get_pcpu() for i386.
Jan 29 2017, 4:15 PM
jah added a reviewer for D9370: Implement get_pcpu() for i386: kib.
Jan 29 2017, 3:20 AM
jah retitled D9370: Implement get_pcpu() for i386 from to Implement get_pcpu() for i386.
Jan 29 2017, 3:20 AM

Jan 26 2017

jah closed D9312: Clean up ARM per-cpu qmap fields by committing rS312792: Further cleanup of per-CPU armv6 pmap data:.
Jan 26 2017, 5:23 AM
jah committed rS312792: Further cleanup of per-CPU armv6 pmap data:.
Further cleanup of per-CPU armv6 pmap data:
Jan 26 2017, 5:23 AM

Jan 25 2017

jah updated the diff for D9312: Clean up ARM per-cpu qmap fields.

Replace pcpu_find with get_pcpu()

Jan 25 2017, 5:29 PM
jah added inline comments to D9312: Clean up ARM per-cpu qmap fields.
Jan 25 2017, 5:29 PM

Jan 24 2017

jah added inline comments to D9312: Clean up ARM per-cpu qmap fields.
Jan 24 2017, 4:31 PM
jah added inline comments to D9312: Clean up ARM per-cpu qmap fields.
Jan 24 2017, 4:20 PM
jah added a reviewer for D9312: Clean up ARM per-cpu qmap fields: skra.
Jan 24 2017, 5:24 AM
jah retitled D9312: Clean up ARM per-cpu qmap fields from to Clean up ARM per-cpu qmap fields.
Jan 24 2017, 5:23 AM

Jan 22 2017

jah committed rS312610: Like r310481 for i386, move the objects used to create temporary.
Like r310481 for i386, move the objects used to create temporary
Jan 22 2017, 12:46 AM
jah closed D9172: Move armv6 sysmaps to MD PCPU region by committing rS312610: Like r310481 for i386, move the objects used to create temporary.
Jan 22 2017, 12:46 AM

Jan 21 2017

jah committed rS312561: MFC r312153, r312191.
MFC r312153, r312191
Jan 21 2017, 6:49 AM

Jan 14 2017

jah updated the diff for D9172: Move armv6 sysmaps to MD PCPU region.

Return sched_unpin() to original order, rename fields

Jan 14 2017, 8:54 PM
jah committed rS312191: Add comment explaining relative order of sched_unpin() and mtx_unlock()..
Add comment explaining relative order of sched_unpin() and mtx_unlock().
Jan 14 2017, 7:35 PM
jah committed rS312153: For i386 temporary mappings, unpin the thread before releasing.
For i386 temporary mappings, unpin the thread before releasing
Jan 14 2017, 9:56 AM
jah added inline comments to D9172: Move armv6 sysmaps to MD PCPU region.
Jan 14 2017, 9:43 AM
jah added reviewers for D9172: Move armv6 sysmaps to MD PCPU region: skra, mmel, andrew.
Jan 14 2017, 4:21 AM
jah retitled D9172: Move armv6 sysmaps to MD PCPU region from to Move armv6 sysmaps to MD PCPU region.
Jan 14 2017, 4:18 AM

Jan 7 2017

jah committed rS311653: MFC r310481:.
MFC r310481:
Jan 7 2017, 6:55 PM

Dec 23 2016

jah committed rS310481: Move the objects used to create temporary mappings for i386 pmap zero and copy.
Move the objects used to create temporary mappings for i386 pmap zero and copy
Dec 23 2016, 3:15 PM
jah closed D8833: Move i386 sysmaps to MD per-cpu region by committing rS310481: Move the objects used to create temporary mappings for i386 pmap zero and copy.
Dec 23 2016, 3:15 PM
jah updated the diff for D8833: Move i386 sysmaps to MD per-cpu region.

Use constant for pcpu padding. Collapse sysmaps struct.

Dec 23 2016, 5:01 AM

Dec 20 2016

jah added inline comments to D8833: Move i386 sysmaps to MD per-cpu region.
Dec 20 2016, 2:46 AM

Dec 19 2016

jah added inline comments to D8833: Move i386 sysmaps to MD per-cpu region.
Dec 19 2016, 7:27 AM

Dec 18 2016

jah added inline comments to D8833: Move i386 sysmaps to MD per-cpu region.
Dec 18 2016, 6:55 PM
jah added a reviewer for D8833: Move i386 sysmaps to MD per-cpu region: kib.
Dec 18 2016, 12:53 AM
jah retitled D8833: Move i386 sysmaps to MD per-cpu region from to Move i386 sysmaps to MD per-cpu region.
Dec 18 2016, 12:52 AM

Aug 7 2016

jah closed D3989: Update powerpc busdma to handle unmapped/out-of-context buffers by committing rS303814: powerpc busdma: Use pmap_quick_enter_page()/pmap_quick_remove_page() to handle.
Aug 7 2016, 3:50 PM
jah committed rS303814: powerpc busdma: Use pmap_quick_enter_page()/pmap_quick_remove_page() to handle.
powerpc busdma: Use pmap_quick_enter_page()/pmap_quick_remove_page() to handle
Aug 7 2016, 3:50 PM