Page MenuHomeFreeBSD

mav (Alexander Motin)
User

Projects

User Details

User Since
Jun 3 2014, 6:27 PM (469 w, 16 h)

Recent Activity

Mon, May 29

mav committed rG3ffa7eff2275: nvmecontrol: Fix power subcommand output. (authored by mav).
nvmecontrol: Fix power subcommand output.
Mon, May 29, 12:57 AM

Mon, May 22

mav accepted D40197: powerd: Don't restore original frequency in rc script; powerd does that itself.
Mon, May 22, 2:52 PM

Mon, May 15

mav committed rGf409f11bc556: nvmecontrol: Fix power subcommand output. (authored by mav).
nvmecontrol: Fix power subcommand output.
Mon, May 15, 8:53 PM

Sat, May 6

mav committed rG572b77f8da5e: mountd: Improve error message for exports lines (authored by mav).
mountd: Improve error message for exports lines
Sat, May 6, 7:12 PM
mav closed D39840: Improve error message for exports lines.
Sat, May 6, 7:12 PM

Tue, May 2

mav committed R11:0b0b95d22fc4: net/aquantia-atlantic-kmod: Update and fix build. (authored by mav).
net/aquantia-atlantic-kmod: Update and fix build.
Tue, May 2, 7:10 PM

Apr 27 2023

mav accepted D39838: Print RPC error in case of clntudp_create() failure in ypwhich.
Apr 27 2023, 1:55 PM
mav accepted D39840: Improve error message for exports lines.
Apr 27 2023, 1:37 PM

Apr 18 2023

mav added inline comments to D39661: mca: Allow for passing ECC error record to memory controller driver.
Apr 18 2023, 6:21 PM
mav added inline comments to D39661: mca: Allow for passing ECC error record to memory controller driver.
Apr 18 2023, 6:17 PM
mav added a comment to D39661: mca: Allow for passing ECC error record to memory controller driver.

I have no objections in general, if you find it useful, just a few on the implementation.

Apr 18 2023, 5:47 PM

Apr 17 2023

mav accepted D39584: umtx: allow to configure minimal timeout (in nanoseconds).
Apr 17 2023, 5:50 PM
mav resigned from D39592: libpmc: Handle PMCALLOCATE log with PMC code on PMU event system.
Apr 17 2023, 5:27 PM
mav accepted D39584: umtx: allow to configure minimal timeout (in nanoseconds).
Apr 17 2023, 2:19 PM
mav added inline comments to D39584: umtx: allow to configure minimal timeout (in nanoseconds).
Apr 17 2023, 1:47 PM
mav added inline comments to D39584: umtx: allow to configure minimal timeout (in nanoseconds).
Apr 17 2023, 1:45 PM

Apr 16 2023

mav added a comment to D39584: umtx: allow to configure minimal timeout (in nanoseconds).

I also wonder if we should make the same tunable to affect other forms of sleep, or not. Is this the most pathological in implementations? May be so. considering there were no complains about others.

Apr 16 2023, 10:41 PM
mav added inline comments to D39584: umtx: allow to configure minimal timeout (in nanoseconds).
Apr 16 2023, 10:39 PM

Apr 14 2023

mav accepted D39572: cam: Properly mask out the status bits to get completion code.

The additional flags are normally used only for queued requests. So some of places here are likely not affected. But it should not harm probably any way.

Apr 14 2023, 2:23 PM

Mar 27 2023

mav accepted D33954: ses: cleanup ses tests.
Mar 27 2023, 8:03 PM
mav added inline comments to D33954: ses: cleanup ses tests.
Mar 27 2023, 7:54 PM
mav added a comment to D39017: sesutil: fix "fault all" with zoned jbods.

Ok, I'll commit for now. However, this vendor is sometimes responsive. They might be willing to choose a better error type if I ask. Do you have any particular SCSI sense code in mind?

Mar 27 2023, 7:48 PM
mav added a comment to D39141: Rationalize SES physical paths strings and device aliases.

Ok. How about we merge this PR now, and I'll have a new one ready for you to test when you get back from Asia?

Mar 27 2023, 7:44 PM
mav accepted D39017: sesutil: fix "fault all" with zoned jbods.

@mav given my comments above, are you ok with merging this? Do you have any better ideas for how to fix the problem?

Mar 27 2023, 7:39 PM
mav added a comment to D39141: Rationalize SES physical paths strings and device aliases.

@mav do you have any of those dual-actuator HDDs? If so, would you be willing to test a patch that adds their LUN numbers to the physical path string? I can send that separately.

Mar 27 2023, 7:34 PM

Mar 18 2023

mav added a comment to D39141: Rationalize SES physical paths strings and device aliases.

The original physical path format came from Solaris/Illumos. While I agree that it is ugly and not very documented, I am not a big fan of incompatible changes. I'd think twice.

Mar 18 2023, 3:03 PM

Mar 17 2023

mav added a comment to D39139: ses: update status more promptly after a change.

ses_process_control_request() triggered by ses_set_enc_status() already calls ses_poll_status(), so most of what you are doing should already work. Not sure only about ENCIOC_SETSTRING.

Mar 17 2023, 2:09 PM

Mar 16 2023

mav accepted D39137: hardclock(9): small cleanups.
Mar 16 2023, 7:40 PM

Mar 14 2023

mav committed rG069fb41af5bc: nvmecontrol: Fix default ns create parameters. (authored by mav).
nvmecontrol: Fix default ns create parameters.
Mar 14 2023, 1:59 PM

Mar 13 2023

mav committed rGde0b02cb7b11: nvmecontrol: Fix default ns create parameters. (authored by mav).
nvmecontrol: Fix default ns create parameters.
Mar 13 2023, 1:54 PM
mav committed rG359b91804001: Add NAMESPACE MANAGEMENT into admin_opcode[]. (authored by mav).
Add NAMESPACE MANAGEMENT into admin_opcode[].
Mar 13 2023, 1:54 PM
mav added a comment to D39017: sesutil: fix "fault all" with zoned jbods.

It may be OK, but I am not sure I like this approach. It creates additional kernel requests, it is potentially racy. Doesn't the enclosure return some reasonable status that kernel could convert into EACCESS or something more reasonable than EINVAL? At least it would be good to do both.

Mar 13 2023, 1:29 AM

Mar 9 2023

mav committed rG20dc2c4d11dd: nvmecontrol: Fix default ns create parameters. (authored by mav).
nvmecontrol: Fix default ns create parameters.
Mar 9 2023, 3:22 PM

Mar 8 2023

mav committed rG49ebbdb264fe: Add NAMESPACE MANAGEMENT into admin_opcode[]. (authored by mav).
Add NAMESPACE MANAGEMENT into admin_opcode[].
Mar 8 2023, 8:43 PM

Feb 15 2023

mav resigned from D38597: Mechanically convert if_cxgb(4) and if_cxgbe(4) to IfAPI.
Feb 15 2023, 1:27 AM

Feb 13 2023

mav accepted D38473: sesutil: don't malloc in a tight loop.

I have no objections, just some comments to polish.

Feb 13 2023, 2:48 PM
mav accepted D38500: Change "ctlstat -P"'s schema.

Makes sense on a brief look.

Feb 13 2023, 12:19 AM

Jan 31 2023

mav accepted D38291: cp: Simplify the common case..

From perspective of ZFS I am all for the removal of mmap() use. ZFS does not benefit from it, but only suffers badly from created buffer cache pressure. We have it disabled on TrueNAS. I was tempted to remove it, but didn't want to open large discussion. I guess it may be beneficial for UFS and any FS using buffer cache, avoiding one memory copy. But I think it should be handled by copy_file_range() inside the kernel in a way the most efficient for specific file system(s).

Jan 31 2023, 2:39 PM

Jan 27 2023

mav accepted D38217: sysctl: use correct types and names in sysctl_*sec_to_sbintime.
Jan 27 2023, 2:12 AM

Jan 21 2023

mav added a comment to D38130: ctlstat: fix -P with disassociated LUNs..

And I see that you can print those with the -p option. But there's not currently any way to get all of them, is there?

Jan 21 2023, 3:08 AM

Jan 20 2023

mav added a comment to D38130: ctlstat: fix -P with disassociated LUNs..

I suppose that request would give you all traffic of the LUNs accessible through that target, even one going though different targets. As alternative, CTL collects per-port statistics, that would closer match targets, if desired, but then without separation between different LUNs.

Jan 20 2023, 11:36 PM
mav added a comment to D38130: ctlstat: fix -P with disassociated LUNs..

Prometheus is expecting that each LUN has one associated target. If one LUN can be shared by multiple targets, then that's certainly a problem. Could you please share an example of such a configuration?

Jan 20 2023, 1:58 PM
mav added a comment to D38130: ctlstat: fix -P with disassociated LUNs..

I've never before looked on this code, but all this targdata.targets[lun] logic looks wrong to me. Any LUN may be mapped into multiple different ports, think that this code does not allow. LUNs not mapped into any port is only a one minor case of generally broken design. I have no idea what data this Prometheus is expecting to receive, but right now it obviously does not receive the full picture. This particular patch is not bad, but it just does not fix whole problem, only a minor part.

Jan 20 2023, 1:32 AM

Jan 10 2023

mav accepted D37992: xdr: store chars consistently.
Jan 10 2023, 2:22 PM

Dec 17 2022

mav committed rGf7c086f2c27d: bhyve virtio-scsi: Fix residual reporting. (authored by mav).
bhyve virtio-scsi: Fix residual reporting.
Dec 17 2022, 7:19 PM

Dec 13 2022

mav committed rG5994a93f8604: CTL: Use atomics for tags in ioctl frontend. (authored by mav).
CTL: Use atomics for tags in ioctl frontend.
Dec 13 2022, 1:20 AM

Dec 9 2022

mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".
  1. enter kgdb and dump the nexthard value and check if it is divisible by tick_sbt as it should.
Dec 9 2022, 2:34 PM
mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

For SMP the value that holds the next hardclock event is per-CPU, and what prevents those per-CPU values from sliding between CPUs? During boot, the dummy timer will put "random" starting values in there? Or am I wrong?

Dec 9 2022, 2:56 AM

Dec 8 2022

mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

@mav : What about synchronous execution between CPUs. When you have one CPU it doesn't matter that much, but when you have multiple CPUs, it might make sense to execute the timers aligned to eachother, instead of sliding randomly?

Dec 8 2022, 9:37 PM

Dec 6 2022

mav added a comment to D37321: tcp: use single locked callout per tcpcb for the TCP timers.

For this change I'm going to take a conservative approach and just store the precision returned by callout_when(). Then I will discuss with TCP guys what we actually want. On our last discussion we touched that briefly and they noticed that our TCP timing is not as precise as it is on Linux and this (could be) a problem (sometimes). IMHO, most likely we want to have different precision for different timers. Anyway, this to happen in a different changeset.

Dec 6 2022, 5:59 PM
mav added a comment to D37615: geom <class> list/status --libxo support.

I've never used libxo to closely review this, but I find it amusing that kernel produces XML for libgeom to parse for geom tool to be able to produce another XML (or JSON or whatever). :)

Dec 6 2022, 5:54 PM
mav added a comment to D37321: tcp: use single locked callout per tcpcb for the TCP timers.

Is this returned precision going to be the same for any ticks argument or not? For example I call callout_when for TT_DELACK and store the result, but then I see that TT_PERSIST is going to be run earlier. Can I use precision returned by callout_when() for TT_DELACK to schedule TT_PERSIST?

Dec 6 2022, 5:43 PM
mav added a comment to D37321: tcp: use single locked callout per tcpcb for the TCP timers.
In D37321#855218, @mav wrote:

Even old callout_reset_on() is not that strict by using system-wide precision of 5%.

I don't see that. In sys/callout.h:

Dec 6 2022, 5:22 PM
mav added inline comments to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".
Dec 6 2022, 5:19 PM
mav added inline comments to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".
Dec 6 2022, 5:04 PM
mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

Yes, I removed that, but the "sbt" (timeout) itself is not guaranteed to be aligned - right ?

Dec 6 2022, 4:42 PM
mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

I was thinking about removing 64bit divisions in the hot path and moving them into the first initialization, instead you've added more... We should not bother about alignment in callout_when() if hardclocktime is aligned. Time passed by caller must be aligned to tick_sbt already by him, otherwise he should not use C_HARDCLOCK.

Dec 6 2022, 4:22 PM
mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

Maybe when setting/updating tick_sbt, there should be a callback to re-align the hardclocktime? What do you think?

Dec 6 2022, 3:25 PM
mav added a comment to D37321: tcp: use single locked callout per tcpcb for the TCP timers.

Do I understand it correct that the "precision" argument to callout_reset_sbt_on() becomes pretty useless if we specify C_HARDLOCK?

Dec 6 2022, 3:05 PM

Dec 3 2022

mav committed rG7467a6953683: CTL: Allow userland supply tags via ioctl frontend. (authored by mav).
CTL: Allow userland supply tags via ioctl frontend.
Dec 3 2022, 5:15 PM
mav committed rGfcdcfa218956: Missed chunk of 0acc026dda9e. (authored by mav).
Missed chunk of 0acc026dda9e.
Dec 3 2022, 4:27 PM
mav committed rG0acc026dda9e: CTL: Increase maximum SCSI tag size from 32 to 64 bits. (authored by mav).
CTL: Increase maximum SCSI tag size from 32 to 64 bits.
Dec 3 2022, 3:38 PM
mav committed rGb81ac5cdc355: bhyve virtio-scsi: Fix residual reporting. (authored by mav).
bhyve virtio-scsi: Fix residual reporting.
Dec 3 2022, 3:15 PM
mav added a comment to D37594: callout(9): When using the C_HARDCLOCK flag, ensure the target time is aligned to "tick_sbt".

Why do you think this is needed? All C_HARDCLOCK consumers are supposed to pass only periods multiple of tick_sbt, and hardclocktime above should be aligned to hardclock also. In what cases do you see misaligned values?

Dec 3 2022, 1:56 PM

Nov 28 2022

mav accepted D37512: FAQ: TRIM: GELI, ZFS, OpenZFS: pruning, tidiness.

Looks good to me, but I am not sure it makes sense to still have the paragraph about 11.0. 11 branch is out of support now, plus that -T option of geli seems to disable TRIM, not enable it, that would have some more sense to document.

Nov 28 2022, 2:49 PM

Nov 8 2022

mav added a comment to D37309: gmultipath: new command "gmultipath which".

Maybe something like "geom -c <consumer-name>" to complement the existing "geom -p <provider-name>"?

Nov 8 2022, 10:54 PM
mav added a comment to D37309: gmultipath: new command "gmultipath which".

Not that I have specific objections against this, but I think it would be much better to implement a generic way to print all consumers connected to specified GEOM provider. This code does not look anyhow specific to gmultipath.

Nov 8 2022, 7:15 PM

Nov 5 2022

mav accepted D37282: rc(8): Add a zpoolupgrade rc.d script.

On TrueNAS we do not upgrade pools automatically to allow users to make sure system operates properly to keep possibility of downgrade if anything go wrong. But if this works only on first boot after install it should probably be fine.

Nov 5 2022, 9:44 PM

Oct 27 2022

mav committed rG7e53019b06d5: Add random VMware device IDs. (authored by mav).
Add random VMware device IDs.
Oct 27 2022, 3:17 AM

Oct 23 2022

mav committed rGb948644cfa07: inet: Simplify if_multiaddrs iteration. (authored by mav).
inet: Simplify if_multiaddrs iteration.
Oct 23 2022, 5:44 PM

Oct 22 2022

mav accepted D36859: time(3): Optimize tvtohz() function..

I agree with Konstatin's comments, otherwise looks good to me. Thinking about the HZ_MAXIMUM value I wonder where is " >> 6" coming from? Is it useful to allow hz > 100KHz? But then above ~15KHz " >> 6" will loose precision. If HZ_MAXIMUM is set to ~68K, then " >> 5" could be better here.

Oct 22 2022, 12:34 AM

Oct 21 2022

mav accepted D36974: ctld: if adding a target fails, retry it on the next reload.
Oct 21 2022, 11:10 PM
mav accepted D37082: x86/busdma: Limit reserved pages if low nsegs.

I always wondered whether kernel could try harder to reduce the number of segments below the number of pages to help hardware that can benefit from it. But you are right that current kernel does not even try to allocate the bounce pages consequently, so allocating more pages than segments supported does not make much sense. Though many drivers should already request maximum map size as maximum number of segments multiplied by page size. So this should affect only drivers that are not doing it.

Oct 21 2022, 9:28 PM

Oct 20 2022

mav committed rGefccf8d5fe3b: ioat: Add Ice Lake ID. (authored by mav).
ioat: Add Ice Lake ID.
Oct 20 2022, 2:27 PM
mav committed rGc68313cdf5a8: ioat: Add Ice Lake ID. (authored by mav).
ioat: Add Ice Lake ID.
Oct 20 2022, 2:25 PM
mav committed rGb106d437054c: vmd: Add DID 8086:7D0B and 8086:AD0B for Intel MTL SKUs (authored by mav).
vmd: Add DID 8086:7D0B and 8086:AD0B for Intel MTL SKUs
Oct 20 2022, 2:24 PM
mav committed rG5e98842589e1: vmd: Bypass MSI/MSI-X remapping when possible. (authored by mav).
vmd: Bypass MSI/MSI-X remapping when possible.
Oct 20 2022, 2:24 PM
mav committed rG2a31a06bf1bb: Add random VMware device IDs. (authored by mav).
Add random VMware device IDs.
Oct 20 2022, 2:21 PM

Oct 19 2022

mav committed rGf51c1d1dd595: pvscsi: Advertise maxio of 256k. (authored by imp).
pvscsi: Advertise maxio of 256k.
Oct 19 2022, 6:07 PM

Oct 18 2022

mav committed rG03acc85e3f2a: pci: Disable Electromechanical Interlock. (authored by mav).
pci: Disable Electromechanical Interlock.
Oct 18 2022, 1:03 AM

Oct 11 2022

mav accepted D36920: nvme: Always set deadline to max.
Oct 11 2022, 2:33 PM

Oct 10 2022

mav added a comment to D36924: nvme: provide mutual exclusion for interrupt handler.

I think this may create a race between new command completion added into the queue and already running handler, when interrupt arriving last moment get dropped, but newly completed command is not yet processed.

Oct 10 2022, 6:26 PM
mav added inline comments to D36922: nvme: Greatly improve error recovery.
Oct 10 2022, 2:25 PM
mav accepted D36920: nvme: Always set deadline to max.

Since it is under the queue lock I don't see much difference in the order, only removal of the condition makes sense to me.

Oct 10 2022, 1:43 PM

Oct 8 2022

mav committed rG1e9482f4331b: inet: Simplify if_multiaddrs iteration. (authored by mav).
inet: Simplify if_multiaddrs iteration.
Oct 8 2022, 5:18 PM

Oct 6 2022

mav committed rGe4e91353c62e: ioat: Add Ice Lake ID. (authored by mav).
ioat: Add Ice Lake ID.
Oct 6 2022, 6:45 PM
mav committed rG9bce11410645: vmd: Add DID 8086:7D0B and 8086:AD0B for Intel MTL SKUs (authored by mav).
vmd: Add DID 8086:7D0B and 8086:AD0B for Intel MTL SKUs
Oct 6 2022, 4:47 PM
mav committed rGc28220d8661e: vmd: Bypass MSI/MSI-X remapping when possible. (authored by mav).
vmd: Bypass MSI/MSI-X remapping when possible.
Oct 6 2022, 4:21 PM

Oct 4 2022

mav committed rGa58536b91ae3: pci: Disable Electromechanical Interlock. (authored by mav).
pci: Disable Electromechanical Interlock.
Oct 4 2022, 2:44 PM

Oct 3 2022

mav added inline comments to D36858: time(3): Align fast clock times to avoid firing multiple timers..
Oct 3 2022, 5:49 PM

Oct 2 2022

mav added inline comments to D36844: kernel: Rework how loadtimer() works..
Oct 2 2022, 2:52 PM

Oct 1 2022

mav added a comment to D36843: acpi_hpet(4): Make sure we don't go into an infinite loop when fdiv is zero..

If periodic == 0 and first == 0, which I see can happen, then fdiv is set to t->div which is zero. Do you see?

Oct 1 2022, 12:52 AM

Sep 30 2022

mav added a comment to D36844: kernel: Rework how loadtimer() works..

The original idea was to keep the potentially expensive clock reading operation out of the lock scope, which in case of global timer, like HPET (which I guess you are using according to other review), may be quite congested. You are right that reading time counter closer to event timer programming should reduce the jitter. I just have difficulties to believe that spin on the lock may be long enough to be possible to hear (thinking whether there can be a context switch somewhere?). But if you say so, I have no big objections. I don't know any modern system with global event timer or slow enough time counter any more, so don't care so much about this aspect.

Sep 30 2022, 10:06 PM
mav added a comment to D36843: acpi_hpet(4): Make sure we don't go into an infinite loop when fdiv is zero..

et_start() should guarantee that this code receive first and/or period big enough for meaningful fdiv. Do you expect this code to loop enough times for overflow the fdiv turning it zero?

Sep 30 2022, 9:33 PM

Sep 27 2022

mav accepted D36751: ntb: Use uintmax_t casts and %j to print physical addresses..
Sep 27 2022, 7:40 PM

Sep 16 2022

mav added inline comments to D36598: ure(4): Fix computation of L4 payload offset for IPv4 and IPv6..
Sep 16 2022, 3:53 PM

Sep 14 2022

mav committed rGce1895b7248d: CTL: Validate IOCTL parameters. (authored by mav).
CTL: Validate IOCTL parameters.
Sep 14 2022, 5:29 PM
mav committed rGc48d0754a053: CTL: Validate IOCTL parameters. (authored by mav).
CTL: Validate IOCTL parameters.
Sep 14 2022, 5:28 PM

Sep 13 2022

mav accepted D36547: tcp: Make all references to CUBIC uppercase.
Sep 13 2022, 1:38 PM
mav accepted D36537: tcp: make cubic the default cc..

Looks good to me, though I am not really qualified to choose. I just saw CUBIC recovering much faster after packet losses in datacenter environments without flow control and WAN/WiFi. With NewReno we saw regular pauses in a traffic up to a second IIRC.

Sep 13 2022, 10:57 AM