Page MenuHomeFreeBSD

markj (Mark Johnston)
User

Projects (8)

User Details

User Since
Mar 12 2014, 1:00 AM (535 w, 2 d)

Recent Activity

Today

markj requested review of D45596: vm_phys: Make sure that vm_phys_enq_chunk() stays in bounds.
Fri, Jun 14, 4:03 PM
markj accepted D45582: powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure.
Fri, Jun 14, 2:38 PM
markj accepted D45581: powerpc_mmu_radix: Introduce 'pmap_abort_ptp'.
Fri, Jun 14, 2:38 PM
markj accepted D45580: riscv pmap: Release PTP reference on leaf ptpage allocation failure.
Fri, Jun 14, 2:37 PM
markj accepted D45579: riscv pmap: Introduce 'pmap_abort_ptp'.
Fri, Jun 14, 2:02 PM
markj accepted D45578: arm64 pmap: Release PTP reference on leaf ptpage allocation failure.
Fri, Jun 14, 2:01 PM
markj added inline comments to D45577: amd64 pmap: Release PTP reference on leaf ptpage allocation failure.
Fri, Jun 14, 2:00 PM
markj accepted D45577: amd64 pmap: Release PTP reference on leaf ptpage allocation failure.
Fri, Jun 14, 1:54 PM
markj committed rGfbff6d54da14: vm_phys: Fix vm_phys_find_range() after commit 69cbb18746b6 (authored by markj).
vm_phys: Fix vm_phys_find_range() after commit 69cbb18746b6
Fri, Jun 14, 4:19 AM
markj committed rGa03354b00238: arm64/vmm: Implement vm_disable_vcpu_creation() (authored by markj).
arm64/vmm: Implement vm_disable_vcpu_creation()
Fri, Jun 14, 1:24 AM
markj committed rGd730cdea2ab3: arm64/vmm: Avoid unnecessary indirection in vmmops_modinit() (authored by markj).
arm64/vmm: Avoid unnecessary indirection in vmmops_modinit()
Fri, Jun 14, 1:24 AM
markj committed rGaede0d3badd1: amd64/vmm: Make vmm.h more self-contained (authored by markj).
amd64/vmm: Make vmm.h more self-contained
Fri, Jun 14, 1:24 AM
markj committed rGb16b4c22d2d1: vm_page: Implement lazy page initialization (authored by markj).
vm_page: Implement lazy page initialization
Fri, Jun 14, 1:24 AM
markj committed rG69cbb18746b6: vm_phys: Add a vm_phys_seg_paddr_to_vm_page() helper (authored by markj).
vm_phys: Add a vm_phys_seg_paddr_to_vm_page() helper
Fri, Jun 14, 1:24 AM
markj closed D45557: arm64/vmm: Avoid unnecessary indirection in vmmops_modinit().
Fri, Jun 14, 1:24 AM
markj committed rGd7ec4a8859b4: vm_phys: Factor out some calls to vm_freelist_add() (authored by markj).
vm_phys: Factor out some calls to vm_freelist_add()
Fri, Jun 14, 1:24 AM
markj committed rG69ccea1c89da: vm_page: Let vm_page_init_page() take a pool parameter (authored by markj).
vm_page: Let vm_page_init_page() take a pool parameter
Fri, Jun 14, 1:24 AM
markj closed D45556: arm64/vmm: Implement vm_disable_vcpu_creation().
Fri, Jun 14, 1:24 AM
markj committed rGab250b02ba4c: bnxt: Use a simpler test for 32-bit platforms (authored by markj).
bnxt: Use a simpler test for 32-bit platforms
Fri, Jun 14, 1:24 AM
markj closed D40403: vm_page: Implement lazy page initialization.
Fri, Jun 14, 1:24 AM
markj committed rGd9220f64da8b: uniq tests: Make uniq_test:stdout more reliable (authored by markj).
uniq tests: Make uniq_test:stdout more reliable
Fri, Jun 14, 1:24 AM
markj closed D43636: vm_phys: Add a vm_phys_seg_paddr_to_vm_page() helper.
Fri, Jun 14, 1:24 AM
markj closed D40400: vm_phys: Factor out some calls to vm_freelist_add().
Fri, Jun 14, 1:23 AM
markj closed D40399: vm_page: Let vm_page_init_page() take a pool parameter.
Fri, Jun 14, 1:23 AM
markj closed D45534: uniq tests: Make uniq_test:stdout more reliable.
Fri, Jun 14, 1:23 AM

Yesterday

markj added a comment to D45049: bhyve: Let the guest enable PCI BARs on arm64.
In D45049#1027224, @jhb wrote:

So for "bare metal" cases like booting with a bootrom (e.g. UEFI) we should arguably leave bars unregistered since the raw firmware probably does that. Only the bhyveload case probably wants to enable BARs on startup. I would be fine with not using a user-facing config option but basically making the test in this patch be some kind of "is there a bootrom or not" check. Would need to test it on amd64 with UEFI.

I implemented this and EDK2 fails to load our loader. I get the following output before dropped into a shell:

Launching virtual machine "test" ...                                                                                                                          
fbuf frame buffer base: 0x32b086e00000 [sz 33554432]                                                                                                          
BdsDxe: loading Boot0001 "EFI Internal Shell" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)                      
BdsDxe: starting Boot0001 "EFI Internal Shell" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)                     
UEFI Interactive Shell v2.2                                                                                                                                   
EDK II                                                                                                                                                        
UEFI v2.70 (BHYVE, 0x00010000)                                                                                                                                
map: No mapping found.

Presumably EDK2 does rely on us having registered BARs. After staring at the EDK2 bhyve platform code for a while, I'm not sure how this is encoded.

It's encoded by PcdPciDisableBusEnumeration. If set to TRUE, EDK2 rely on us. If set to FALSE or unset, EDK2 will register BARs itself. For the X64 platform it was removed some time ago: https://github.com/tianocore/edk2/commit/70f3e62dc73d28962b833373246ef25c865c575e.

You could try building a debug version of EDK2 to get a more detailed log. Therefore, pass -b DEBUG and -DDEBUG_ON_SERIAL_PORT=TRUE to the build command.

Thu, Jun 13, 6:16 PM

Wed, Jun 12

markj added a comment to D45049: bhyve: Let the guest enable PCI BARs on arm64.
In D45049#1027224, @jhb wrote:

So for "bare metal" cases like booting with a bootrom (e.g. UEFI) we should arguably leave bars unregistered since the raw firmware probably does that. Only the bhyveload case probably wants to enable BARs on startup. I would be fine with not using a user-facing config option but basically making the test in this patch be some kind of "is there a bootrom or not" check. Would need to test it on amd64 with UEFI.

Wed, Jun 12, 3:33 PM

Tue, Jun 11

markj added inline comments to D45536: log2: move log2 related functions from kpi to libkern.
Tue, Jun 11, 11:13 PM
markj added a comment to D45563: sys: move SAN and COVERAGE options handling to kern.mk.

I think there's some overlap here with D45498. At a glance this seems fine to me.

Tue, Jun 11, 10:37 PM
markj added a comment to D45512: bhyve/riscv userspace part.

This looks fine to me. I don't really like the duplication of fdt.c, but it's not that much code and it's not obvious to me that creating a generic FDT layer is useful at this point.

Tue, Jun 11, 2:17 PM
markj accepted D45536: log2: move log2 related functions from kpi to libkern.
Tue, Jun 11, 2:09 PM
markj added inline comments to D45498: sys/conf: Introduce NOSAN_CFLAGS and NOSAN_C.
Tue, Jun 11, 2:07 PM
markj requested review of D45557: arm64/vmm: Avoid unnecessary indirection in vmmops_modinit().
Tue, Jun 11, 12:59 AM
markj requested review of D45556: arm64/vmm: Implement vm_disable_vcpu_creation().
Tue, Jun 11, 12:59 AM

Mon, Jun 10

markj added a comment to D45552: create sticky bit /usr/obj/home dir.

I like the idea, but I wonder if it'd be better to modify pw(8) to create a directory under /usr/obj/home with the correct ownership?

Mon, Jun 10, 8:19 PM
markj accepted D45551: BSD.tests.dist: add entry for virstor test.
Mon, Jun 10, 6:51 PM
markj accepted D45550: bhyve: Fix the build with gcc.
Mon, Jun 10, 5:26 PM
markj accepted D45548: arm64/vmm: Add braces to fix the gcc build.
Mon, Jun 10, 5:13 PM
markj accepted D45535: virstor: basic functional test.
Mon, Jun 10, 1:57 PM
markj accepted D45517: virstor: write large maps in chunks during label.
Mon, Jun 10, 1:54 PM
markj added inline comments to D45536: log2: move log2 related functions from kpi to libkern.
Mon, Jun 10, 1:53 PM

Sun, Jun 9

markj updated the diff for D45534: uniq tests: Make uniq_test:stdout more reliable.

Apply feedback, don't use fractional times.

Sun, Jun 9, 10:54 PM
markj added inline comments to D45534: uniq tests: Make uniq_test:stdout more reliable.
Sun, Jun 9, 10:53 PM
markj added inline comments to D45536: log2: move log2 related functions from kpi to libkern.
Sun, Jun 9, 10:49 PM
markj accepted D45474: riscv: improve commentary around initial stvec.
Sun, Jun 9, 10:26 PM
markj accepted D45328: riscv: smarter DMAP construction.
Sun, Jun 9, 10:24 PM
markj added inline comments to D45327: riscv: rework page table bootstrap.
Sun, Jun 9, 10:09 PM
markj accepted D45324: riscv: Construct an identity map in locore.S.
Sun, Jun 9, 9:30 PM
markj accepted D45470: riscv: drop l1pt argument from pmap_bootstrap().
Sun, Jun 9, 9:30 PM
markj committed rG0db67d7b5de8: boot/zfs: Sync the definition of dsl_dataset_phys with OpenZFS (authored by markj).
boot/zfs: Sync the definition of dsl_dataset_phys with OpenZFS
Sun, Jun 9, 2:18 PM
markj committed rG2faee677d518: ti/am335x: Fix the device_set_descf() call in dmtpps_probe() (authored by markj).
ti/am335x: Fix the device_set_descf() call in dmtpps_probe()
Sun, Jun 9, 2:13 PM
markj committed rGaab8a370cc8b: dtrace tests: Fix loading of the test kernel module (authored by markj).
dtrace tests: Fix loading of the test kernel module
Sun, Jun 9, 2:13 PM
markj committed rG6e345bea25d4: makefs/zfs: Add a helper function for adding ZAP entries (authored by markj).
makefs/zfs: Add a helper function for adding ZAP entries
Sun, Jun 9, 2:13 PM
markj committed rG3f6fc84ad947: proto: Use device_set_descf() (authored by markj).
proto: Use device_set_descf()
Sun, Jun 9, 2:13 PM
markj committed rGd73f9fc2641e: uart: Use device_set_descf() (authored by markj).
uart: Use device_set_descf()
Sun, Jun 9, 2:13 PM
markj committed rGea71ec44e200: virtio: Use device_set_descf() (authored by markj).
virtio: Use device_set_descf()
Sun, Jun 9, 2:13 PM
markj committed rG990567788613: mvs: Use device_set_desc(f)() (authored by markj).
mvs: Use device_set_desc(f)()
Sun, Jun 9, 2:13 PM
markj committed rG54c4a726f56d: acpi: Use device_set_descf() (authored by markj).
acpi: Use device_set_descf()
Sun, Jun 9, 2:13 PM
markj committed rGdd8575e19ae0: qlnx: Use device_set_descf() (authored by markj).
qlnx: Use device_set_descf()
Sun, Jun 9, 2:13 PM
markj committed rG2b4333af7bef: siis: Use device_set_desc(f)() (authored by markj).
siis: Use device_set_desc(f)()
Sun, Jun 9, 2:12 PM
markj committed rG10f8a5c097f6: etherswitch: Use device_set_desc(f)() (authored by markj).
etherswitch: Use device_set_desc(f)()
Sun, Jun 9, 2:12 PM
markj committed rGc5fe4fcda4fc: cxgbe: Use device_set_descf() (authored by markj).
cxgbe: Use device_set_descf()
Sun, Jun 9, 2:12 PM
markj committed rG8cf06a36c535: cxgb: Use device_set_descf() (authored by markj).
cxgb: Use device_set_descf()
Sun, Jun 9, 2:12 PM
markj committed rG18468b225ce4: bhnd: Use device_set_descf() (authored by markj).
bhnd: Use device_set_descf()
Sun, Jun 9, 2:12 PM
markj committed rG19d87088173a: ata: Use device_set_descf() (authored by markj).
ata: Use device_set_descf()
Sun, Jun 9, 2:12 PM
markj committed rG6324f0268918: ahci: Use device_set_desc(f)() (authored by markj).
ahci: Use device_set_desc(f)()
Sun, Jun 9, 2:12 PM
markj committed rGad0f458adece: arm: Convert drivers to use device_set_desc(f)() (authored by markj).
arm: Convert drivers to use device_set_desc(f)()
Sun, Jun 9, 2:12 PM
markj committed rGda925fcebf39: libc/tests: Further refine the condition for installing h_raw (authored by markj).
libc/tests: Further refine the condition for installing h_raw
Sun, Jun 9, 2:10 PM
markj committed rG3ce9b2ee9404: ti/am335x: Fix the device_set_descf() call in dmtpps_probe() (authored by markj).
ti/am335x: Fix the device_set_descf() call in dmtpps_probe()
Sun, Jun 9, 2:10 PM

Fri, Jun 7

markj accepted D45502: arm64 pmap: Defer bti lookup.
Fri, Jun 7, 7:34 PM
markj requested review of D45534: uniq tests: Make uniq_test:stdout more reliable.
Fri, Jun 7, 7:33 PM
markj updated subscribers of D45502: arm64 pmap: Defer bti lookup.
Fri, Jun 7, 7:01 PM
markj added inline comments to D45517: virstor: write large maps in chunks during label.
Fri, Jun 7, 3:23 PM
markj added a comment to D45518: virstor: remove relation between chunk size and MAXPHYS.

I don't know this GEOM well enough to say whether this is right, but I can't see any reason it's wrong. It's unfortunate that there are no regression tests for this code.

I see there are tests for other geoms in tests/sys/geom, but I haven't figured out how to run them yet. Do you know? I might be able to cobble together something basic at least.

Ah, I got it with

sudo kyua test -k /usr/tests/sys/geom/Kyuafile

They are not hooked up to the sys/Kyuafile. I wonder why.

Fri, Jun 7, 2:54 PM
markj accepted D45494: powerof2: replace loops with fls or ilog2.

The diff looks right to me. @np , @kib , and @erj might want to comment on the cxgbe, mlx5 and irdma diffs respectively.

Fri, Jun 7, 1:45 PM
markj added a comment to D45518: virstor: remove relation between chunk size and MAXPHYS.

I don't know this GEOM well enough to say whether this is right, but I can't see any reason it's wrong. It's unfortunate that there are no regression tests for this code.

Fri, Jun 7, 1:34 PM
markj accepted D45517: virstor: write large maps in chunks during label.
Fri, Jun 7, 1:29 PM
markj accepted D45502: arm64 pmap: Defer bti lookup.
Fri, Jun 7, 1:19 PM
markj added a comment to D45510: vm_radix: offer insert with le lookup and fast replacement.

I would expect an iterator to consist of an array of maxdepth pointers and a parent index and a leaf index. Initialization means setting the first array element to root and the counter to 1. Searching updates the path, and insert/remove operations can happen in constant time at the bottom of the path, given the leaf index, and iteration happens by incrementing the leaf index to the next non-null child or, if there is none, backing up the path as far as necessary to take a step further right.

Yes I think that would work, and probably has simpler logic. IIUC the maxdepth is about 16 or 21 levels (depending on arch, and I may be off by 1), so 128 or 84 bytes for the array. I guess that's not so bad.

Thinking more, I agree. Two pointers really only saves stack space, which is not so precious. A full depth stack of pointers is simpler and faster, and anyway reasonably bounded.

Fri, Jun 7, 1:08 AM
markj added inline comments to D45502: arm64 pmap: Defer bti lookup.
Fri, Jun 7, 12:45 AM

Thu, Jun 6

markj accepted D45501: sound: Include sound(4) channel information in sndstat nvlist.

Seems ok to me.

Thu, Jun 6, 3:35 PM
markj accepted D45509: bpf: Make bpf_peers_present a boolean inline function.
Thu, Jun 6, 12:44 PM

Wed, Jun 5

markj accepted D45467: vmm: Only link the arm64 hyp code in vmm.ko once.
Wed, Jun 5, 10:21 PM
markj closed D45504: drm2: Remove one more implementation of ilog2().
Wed, Jun 5, 10:19 PM
markj committed rGc70c791f0660: drm2: Remove one more implementation of ilog2() (authored by markj).
drm2: Remove one more implementation of ilog2()
Wed, Jun 5, 10:19 PM
markj added inline comments to D45502: arm64 pmap: Defer bti lookup.
Wed, Jun 5, 9:55 PM
markj added inline comments to D45501: sound: Include sound(4) channel information in sndstat nvlist.
Wed, Jun 5, 9:40 PM
markj requested review of D45504: drm2: Remove one more implementation of ilog2().
Wed, Jun 5, 9:16 PM
markj accepted D45486: vm_page_insert: use pctrie combined insert/lookup.
Wed, Jun 5, 5:21 PM
markj added inline comments to D45486: vm_page_insert: use pctrie combined insert/lookup.
Wed, Jun 5, 5:13 PM
markj accepted D45279: cryptocheck: Don't treat OpenSSL errors as fatal.
Wed, Jun 5, 5:03 PM
markj accepted D45486: vm_page_insert: use pctrie combined insert/lookup.
Wed, Jun 5, 4:41 PM
markj accepted D45486: vm_page_insert: use pctrie combined insert/lookup.
Wed, Jun 5, 2:02 PM
markj accepted D45394: pctrie: add combined insert/lookup operations.
Wed, Jun 5, 1:58 PM
markj accepted D45495: vm: Eliminate a redundant call to vm_reserv_break_all().
Wed, Jun 5, 1:55 PM
markj accepted D45498: sys/conf: Introduce NOSAN_CFLAGS and NOSAN_C.

Sorry for not having done this when I added the -fno-sanitize* pattern.

Wed, Jun 5, 1:53 PM
markj added inline comments to D45395: getblk: reduce time under bufobj lock.
Wed, Jun 5, 2:32 AM
markj requested review of D45492: ithread: Improve synchronization in ithread_destroy().
Wed, Jun 5, 1:22 AM
markj requested review of D45491: ithread: Annotate a branch in ithread_execute_handlers().
Wed, Jun 5, 1:22 AM
markj requested review of D45490: intr: Remove dead code from intr_event_remove_handler().
Wed, Jun 5, 1:22 AM