Page MenuHomeFreeBSD

vmaffione (V Maffione)
User

Projects

User Details

User Since
Mar 10 2018, 1:54 AM (70 w, 5 d)

Recent Activity

Tue, Jul 16

vmaffione added a comment to D20973: bhyve: support for enabling/disabling the net backend.

Upload the right patch

Tue, Jul 16, 7:31 PM
vmaffione added a comment to D20973: bhyve: support for enabling/disabling the net backend.

minimize patch by adding mevent_add_disabled().

Tue, Jul 16, 7:28 PM
vmaffione updated the summary of D20973: bhyve: support for enabling/disabling the net backend.

Start the backends with receive enabled for the moment being.

Tue, Jul 16, 7:17 PM
vmaffione added inline comments to D20973: bhyve: support for enabling/disabling the net backend.
Tue, Jul 16, 5:32 PM
vmaffione updated the summary of D20973: bhyve: support for enabling/disabling the net backend.
Tue, Jul 16, 5:01 PM
vmaffione created D20973: bhyve: support for enabling/disabling the net backend.
Tue, Jul 16, 4:58 PM

Mon, Jul 8

vmaffione created D20883: bhyve: net_backends.c: add missing __FBSDID.
Mon, Jul 8, 9:23 PM
vmaffione added a comment to D20874: bhyve: add missing license identifiers in net_utils and net_backend.

Changed the patch to update the license identifiers only.

Mon, Jul 8, 9:13 PM

Sun, Jul 7

vmaffione created D20874: bhyve: add missing license identifiers in net_utils and net_backend.
Sun, Jul 7, 12:27 PM

Thu, Jul 4

vmaffione updated vmaffione.
Thu, Jul 4, 9:37 PM
vmaffione updated vmaffione.
Thu, Jul 4, 6:23 PM

Mon, Jul 1

D20824: Fix netmap + vlan panics is now accepted and ready to land.

Looks good, thanks.
The netmap unit tests and integration tests still pass with these changes.

Mon, Jul 1, 7:52 PM
vmaffione added a comment to D20659: bhyve: abstraction for network backends.

Thanks. This touches also TAP and setups, so we need tests with TAP.
Also, we would need to check that TAP+e1000 works.

Mon, Jul 1, 4:13 PM

Sun, Jun 30

vmaffione added a comment to D20659: bhyve: abstraction for network backends.

Thanks for the review. I actually don't have yet a real testbed for this (will get one soon), and I can only do functional tests in a nested KVM VM. Any test is welcome.

Sun, Jun 30, 8:05 PM
D20659: bhyve: abstraction for network backends now requires review to proceed.

Addressed coments from reviewers.

Sun, Jun 30, 7:59 PM

Thu, Jun 27

vmaffione added a comment to D20659: bhyve: abstraction for network backends.

Thanks for the in depth review. Sorry about the style issues. Is there a FreeBSD clang-format file against which I can validate code?

Thu, Jun 27, 9:48 PM
vmaffione added a comment to D20659: bhyve: abstraction for network backends.

Tried to address jhb's comments.

Thu, Jun 27, 9:47 PM

Mon, Jun 24

vmaffione retitled D20659: bhyve: abstraction for network backends from bhyve: abstraction for network backends (WIP) to bhyve: abstraction for network backends.
Mon, Jun 24, 8:52 PM
vmaffione updated the diff for D20659: bhyve: abstraction for network backends.
Mon, Jun 24, 8:26 PM

Sat, Jun 22

vmaffione updated the diff for D20659: bhyve: abstraction for network backends.
Sat, Jun 22, 3:56 PM

Fri, Jun 21

pi renamed vmaffione from v.maffione_gmail.com to vmaffione.
Fri, Jun 21, 7:22 AM

Jun 16 2019

vmaffione updated the diff for D20659: bhyve: abstraction for network backends.
Jun 16 2019, 10:59 AM
vmaffione retitled D20659: bhyve: abstraction for network backends from bhyve: abstraction for network backends to bhyve: abstraction for network backends (WIP).
Jun 16 2019, 9:01 AM
vmaffione created D20659: bhyve: abstraction for network backends.
Jun 16 2019, 9:00 AM

Jun 13 2019

vmaffione added a comment to D20609: bhyve: vtnet: fix locking on receive.

Do you mean a common vq_notify callback for both transmit and receive queue? But pci_vtnet_ping_txq() and pci_vtnet_ping_rxq() perform different work ...

Jun 13 2019, 6:10 PM
vmaffione added inline comments to D20626: bhyve: move common code to net_utils.c.
Jun 13 2019, 5:44 PM
vmaffione added inline comments to D20626: bhyve: move common code to net_utils.c.
Jun 13 2019, 4:28 PM
vmaffione updated the diff for D20626: bhyve: move common code to net_utils.c.

Removed "All rights reserved".

Jun 13 2019, 4:25 PM
vmaffione updated the diff for D20626: bhyve: move common code to net_utils.c.

Updated attribution.

Jun 13 2019, 3:29 PM

Jun 12 2019

vmaffione updated the diff for D20626: bhyve: move common code to net_utils.c.
Jun 12 2019, 8:22 PM
vmaffione created D20626: bhyve: move common code to net_utils.c.
Jun 12 2019, 8:19 PM

Jun 11 2019

vmaffione created D20609: bhyve: vtnet: fix locking on receive.
Jun 11 2019, 5:18 PM

Jun 10 2019

vmaffione updated the diff for D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable().

Provide patch relative to /usr/src/.

Jun 10 2019, 8:35 PM
vmaffione updated the diff for D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable().

Moved include <machine/atomic.h> to virtio.h.

Jun 10 2019, 8:20 PM
vmaffione added inline comments to D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable().
Jun 10 2019, 7:47 PM
vmaffione added a comment to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

This looks better, but the problem is that I was refactoring this file to separate virtio specific code from the backends (netmap, tap), and add
support for offloads (including TSO); this patch creates many conflicts with my pending work, and IMHO it should be rebased after my work to prevent a total mess.

Jun 10 2019, 7:44 PM
vmaffione added a reviewer for D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable(): bryanv.
Jun 10 2019, 7:18 PM

Jun 9 2019

vmaffione updated the diff for D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable().
Jun 9 2019, 9:41 PM
vmaffione created D20581: bhyve: virtio: introduce vq_kick_enable() and vq_kick_disable().
Jun 9 2019, 9:41 PM

Jun 7 2019

vmaffione added reviewers for D20543: bhyve: vtnet: simplify thread synchronization: markj, jhb.
Jun 7 2019, 4:03 PM
vmaffione updated the diff for D20543: bhyve: vtnet: simplify thread synchronization.
Jun 7 2019, 2:28 PM
vmaffione updated the diff for D20543: bhyve: vtnet: simplify thread synchronization.
Jun 7 2019, 1:30 PM
vmaffione added a comment to D20543: bhyve: vtnet: simplify thread synchronization.

Sorry for the diff context, I forgot about that.
Thanks for the suggestions, they look good to me, and I'll implement those in short.
Btw I would like to refactor/improve vtnet/tap/netmap support, so more patches will follow.

Jun 7 2019, 7:16 AM

Jun 6 2019

vmaffione created D20543: bhyve: vtnet: simplify thread synchronization.
Jun 6 2019, 9:20 PM

Jun 4 2019

vmaffione created D20518: Add myself to committers-src.dot and calendar.freebsd.
Jun 4 2019, 7:27 PM

May 27 2019

vmaffione added a comment to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Yes, but I think the story is more complex than that. Guests can publish single-descriptor chains or multi-descriptor chains, depending on feature negotiation and driver implementation. With mergeable buffers enabled, or TSO features disabled, guests will normally submit single-descriptor chains (because it makes sense), but this is not mandatory. With TSO enabled and mergeable buffers disabled, guests will normally pass in multi-descriptor chains, each one describing 64K or 32K buffers.
It makes sense to add more vq methods to handle the mergeable rx bufs case, but think they should be moved to usr.sbin/bhyve/virtio.c, so that they can be reused.

May 27 2019, 9:24 PM

May 22 2019

vmaffione added a comment to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..

Netmap usage by itself looks mostly ok, except where noted. We could improve the management of r->cur in certain cases, but it's not particularly important for now (for reference, please look at my QEMU implementation, for instance the transmit routine is here https://github.com/qemu/qemu/blob/master/net/netmap.c#L160-L225).
I still need to review your changes to the virtqueue processing. But why did you drop vq_getchain() and write a custom method? If another method is needed, it should be added to virtio.c IMHO.

May 22 2019, 9:07 PM

May 17 2019

vmaffione added inline comments to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 17 2019, 7:28 PM

May 16 2019

vmaffione added inline comments to D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch..
May 16 2019, 8:14 PM

Apr 9 2019

vmaffione accepted D19864: Polish netmap(4) testcases a bit.

Thank you very much!

Apr 9 2019, 5:33 PM

Mar 19 2019

vmaffione updated the summary of D19639: netmap: update unit tests.
Mar 19 2019, 9:05 AM
vmaffione created D19639: netmap: update unit tests.
Mar 19 2019, 9:03 AM

Feb 18 2019

vmaffione accepted D19104: vmxnet3: add native netmap support.
Feb 18 2019, 4:14 PM
vmaffione accepted D19104: vmxnet3: add native netmap support.
Feb 18 2019, 2:11 PM
vmaffione added a comment to D19177: netmap: don't schedule kqueue notify task when kqueue is not used.

No worries, and thanks for testing!

Feb 18 2019, 1:54 PM

Feb 14 2019

vmaffione added a comment to D19177: netmap: don't schedule kqueue notify task when kqueue is not used.

Thanks.
In my tests I can see that without the patch, two pkt-gen communicating over a VALE port will consume 9% CPU on kqueue processing (although kqueue is not used), on a separate CPU.
With the patch, the 9% goes away.

Feb 14 2019, 8:22 AM

Feb 13 2019

vmaffione added a comment to D19177: netmap: don't schedule kqueue notify task when kqueue is not used.

We can't. We use a taskqueue there precisely because we cannot take the si->m lock (or we get LOR).

Feb 13 2019, 8:41 PM
vmaffione retitled D19177: netmap: don't schedule kqueue notify task when kqueue is not used from netmap: don't schedule kqueue notify task when kqueue is used to netmap: don't schedule kqueue notify task when kqueue is not used.
Feb 13 2019, 9:52 AM
vmaffione created D19177: netmap: don't schedule kqueue notify task when kqueue is not used.
Feb 13 2019, 9:51 AM

Feb 7 2019

vmaffione added inline comments to D19104: vmxnet3: add native netmap support.
Feb 7 2019, 2:51 PM
vmaffione added a comment to D19104: vmxnet3: add native netmap support.

It would probably help to have more lines of contexts for the patch.
If you used git, you should probably use something like:

git diff -U30 [...]

If you used svn

svn diff -x '-U30'
Feb 7 2019, 2:06 PM

Jan 30 2019

vmaffione added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

Thanks for testing.

Jan 30 2019, 3:32 PM
vmaffione updated the summary of D18956: netmap: fix lock order reversal related to kqueue usage (v2).
Jan 30 2019, 10:24 AM

Jan 29 2019

vmaffione added a comment to D18984: ixl: remove unnecessary limitations related to netmap.

Thanks!
It looks like reading the the HEAD of the first TX ring works, while the other TX rings don't...

Jan 29 2019, 6:10 PM
vmaffione added a reviewer for D18956: netmap: fix lock order reversal related to kqueue usage (v2): g.lettieri_iet.unipi.it.
Jan 29 2019, 3:21 PM
vmaffione updated the diff for D18956: netmap: fix lock order reversal related to kqueue usage (v2).

knote() notification work deferred to a per-selinfo taskqueue

Jan 29 2019, 3:19 PM
vmaffione created D19015: vtnet: fix typo in vtnet_free_taskqueues.
Jan 29 2019, 10:32 AM
vmaffione added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

That's convincing, thanks. I will try to switch to a per-netmap-adapter private taskqueue, to avoid locking contention on the same taskqueue.

Jan 29 2019, 9:02 AM

Jan 28 2019

vmaffione abandoned D18952: netmap: fix lock order reversal related to kqueue usage.

Obsoleted by https://reviews.freebsd.org/D18956

Jan 28 2019, 1:28 PM
vmaffione added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

I went for reusing a system-wide taskqueue because the work to be done is minimal (i.e. it is not something like processing a number of descriptors in a device queue, or a list of packets, etc.).
However, if you think it's better to use a netmap-wide taskqueue for this, we can go for it.
Are you worried about something in particular, w.r.t. the current approach?

Jan 28 2019, 1:28 PM
vmaffione added a comment to D18956: netmap: fix lock order reversal related to kqueue usage (v2).

Thanks for testing.
I think this is safe to commit.

Jan 28 2019, 11:43 AM
vmaffione added a comment to D18984: ixl: remove unnecessary limitations related to netmap.

No problems!
Actually some people is experiencing problems when using netmap on ixl (see related PR), so I would like to understand what is going on...

Jan 28 2019, 10:51 AM

Jan 26 2019

vmaffione updated subscribers of D18984: ixl: remove unnecessary limitations related to netmap.
Jan 26 2019, 6:33 PM
vmaffione updated the diff for D18984: ixl: remove unnecessary limitations related to netmap.

Sanitize the value of the hw head index read at the end of the TX ring.

Jan 26 2019, 6:29 PM
vmaffione retitled D18984: ixl: remove unnecessary limitations related to netmap from ixl: clean up to ixl: remove unnecessary limitations related to netmap.
Jan 26 2019, 6:18 PM
vmaffione added a reviewer for D18984: ixl: remove unnecessary limitations related to netmap: erj.
Jan 26 2019, 6:16 PM
vmaffione created D18984: ixl: remove unnecessary limitations related to netmap.
Jan 26 2019, 6:14 PM

Jan 25 2019

vmaffione added a comment to D18952: netmap: fix lock order reversal related to kqueue usage.

Thanks for testing. So this seems to work.
However, introducing a global lock is not the best approach for performance reasons. I tried to came up with a different approach that also allows us to get rid of the mtx_owned() call.
See https://reviews.freebsd.org/D18956

Jan 25 2019, 5:16 PM
vmaffione added a reviewer for D18956: netmap: fix lock order reversal related to kqueue usage (v2): aleksandr.fedorov_itglobal.com.
Jan 25 2019, 5:14 PM
vmaffione created D18956: netmap: fix lock order reversal related to kqueue usage (v2).
Jan 25 2019, 5:13 PM
vmaffione created D18952: netmap: fix lock order reversal related to kqueue usage.
Jan 25 2019, 9:32 AM

Jan 24 2019

vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

I could not reproduce your issue, but this patch may be useful to match the actual locks involved against the corresponding netmap ports.

Jan 24 2019, 5:11 PM
vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Thanks for reporting. Also the code sample can be useful to add some unit tests for kqueue.

Jan 24 2019, 2:32 PM

Jan 23 2019

vmaffione updated the diff for D18876: netmap: fix knote() argument to match the mutex state.

Uploading diff with some context (-U 100).

Jan 23 2019, 11:40 AM
vmaffione updated the diff for D18876: netmap: fix knote() argument to match the mutex state.

Fixed indentation as suggested.

Jan 23 2019, 11:38 AM

Jan 21 2019

vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

That's another interesting question.
It looks like it was added to support the case where multiple threads poll() on the same netmap port. In that case, one of the thread performs the actual TXSYNC or RXSYNC, and if some work was actually performed (e.g. ring indices were advanced) the thread will call nm_notify() to wake up all the other threads.

Jan 21 2019, 5:24 PM
vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Thanks for the explanation. Yes, I understand that this use of f_event is unusual, and I see your point.

Jan 21 2019, 9:10 AM

Jan 18 2019

vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Thanks a lot!

Jan 18 2019, 3:26 PM
vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Added @markj to possibly answer the question about calling KNOTE() in f_event.

Jan 18 2019, 1:43 PM
vmaffione added a reviewer for D18876: netmap: fix knote() argument to match the mutex state: markj.
Jan 18 2019, 1:43 PM
vmaffione added a comment to D18876: netmap: fix knote() argument to match the mutex state.

Thanks a lot for testing! Yes, a lot of comments looked really inconsistent with the code. I did some more consistent update.
It would be great if you could run your tests again, since I've done a small code change in netmap_knrw().

Jan 18 2019, 10:57 AM
vmaffione updated the diff for D18876: netmap: fix knote() argument to match the mutex state.

Cleanup comments related to kqueue.

Jan 18 2019, 10:52 AM

Jan 17 2019

vmaffione created D18876: netmap: fix knote() argument to match the mutex state.
Jan 17 2019, 5:19 PM

Dec 31 2018

vmaffione added a comment to D18490: netmap: add suite of unit tests.

Thank you very much for your thorough review!
I will try to convert that to a TAP test, and ask for help if I find obstacles.

Dec 31 2018, 11:19 AM

Dec 24 2018

vmaffione updated the diff for D18490: netmap: add suite of unit tests.

Formatted .dist file.

Dec 24 2018, 3:56 PM

Dec 23 2018

vmaffione added a comment to D18490: netmap: add suite of unit tests.

Any more comments? Can I go ahead and commit this?
Thanks

Dec 23 2018, 10:18 AM

Dec 21 2018

vmaffione added a comment to D18629: netmap: update nmreplay(8).

Thanks for the quick reply!

Dec 21 2018, 2:43 PM
vmaffione added a reviewer for D18629: netmap: update nmreplay(8): gnn.
Dec 21 2018, 2:14 PM
vmaffione created D18629: netmap: update nmreplay(8).
Dec 21 2018, 2:14 PM

Dec 19 2018

vmaffione updated the diff for D18490: netmap: add suite of unit tests.

Make sure av[] on-stack arrays do not overflow.

Dec 19 2018, 9:17 AM