Page MenuHomeFreeBSD

glebius (Gleb Smirnoff)
User

Projects

User Details

User Since
May 28 2014, 2:27 PM (299 w, 2 h)

Recent Activity

Yesterday

glebius accepted D23742: Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process incoming packets in taskqueue context..
Tue, Feb 18, 7:38 PM

Thu, Feb 13

glebius created D23674: Change smarter epoch support for NIC drivers to opt-in..
Thu, Feb 13, 10:02 PM
glebius added inline comments to D23656: Move MPASS() macros to systm.h..
Thu, Feb 13, 6:13 PM
glebius added inline comments to D23656: Move MPASS() macros to systm.h..
Thu, Feb 13, 4:01 PM
glebius added a comment to D23656: Move MPASS() macros to systm.h..
In D23656#519345, @mjg wrote:

no, keep it grouped with the rest for consistency but #if defined(_KERNEL) around it

Thu, Feb 13, 6:05 AM
glebius updated the diff for D23656: Move MPASS() macros to systm.h..

Shift down under _KERNEL.

Thu, Feb 13, 5:48 AM
glebius added a comment to D23654: Add support for more interrupt types.

The Mellanox drivers currently manage this internally:
See: https://svnweb.freebsd.org/changeset/base/357294
Usually there are many packets processed per interrupt.

Thu, Feb 13, 5:47 AM
glebius added a comment to D23656: Move MPASS() macros to systm.h..
In D23656#519337, @mjg wrote:

looks like this is guarded by _KERNEL in the original header, we should stick to it just in case in the new one

Thu, Feb 13, 5:41 AM

Wed, Feb 12

glebius created D23656: Move MPASS() macros to systm.h..
Wed, Feb 12, 11:03 PM
glebius added a comment to D23654: Add support for more interrupt types.

This change looks good to me in general. The only problem I see that Mellanox will now won't have batched epoch. And this was one of the drivers that really benefited from it in our testing of batching epoch at interrupt level.

Wed, Feb 12, 7:56 PM

Tue, Feb 11

glebius committed rS357779: Remove assertion from TASK_INIT() macro, since some users of.
Remove assertion from TASK_INIT() macro, since some users of
Tue, Feb 11, 9:21 PM
glebius committed rS357773: Mark lio taskqueue as requiring network epoch..
Mark lio taskqueue as requiring network epoch.
Tue, Feb 11, 7:13 PM
glebius committed rS357772: Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process.
Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process
Tue, Feb 11, 6:57 PM
glebius committed rS357771: Add flag to struct task to mark the task as requiring network epoch..
Add flag to struct task to mark the task as requiring network epoch.
Tue, Feb 11, 6:48 PM
glebius closed D23518: epoch support for taskqueues [2].
Tue, Feb 11, 6:48 PM
glebius updated the diff for D23518: epoch support for taskqueues [2].
  • Add flag to struct task to mark the task as requiring network epoch.
  • Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process
  • Revert "Temporarily force IFF_NEEDSEPOCH until drivers have been resolved."
Tue, Feb 11, 6:10 PM
glebius accepted D23599: Add missing EPOCH(9) wrapper in ipfw.
Tue, Feb 11, 6:09 PM

Mon, Feb 10

glebius updated the diff for D23518: epoch support for taskqueues [2].

Convert pointer in struct task to a flag.

Mon, Feb 10, 11:56 PM
glebius added inline comments to D23518: epoch support for taskqueues [2].
Mon, Feb 10, 7:02 PM
glebius added a comment to D23599: Add missing EPOCH(9) wrapper in ipfw.

Thanks for the find. I'd rather move the entrance to dyn_tick(). Would use less lines of code and would make it easier to spot it later, when we have callouts supporting epoch.

Mon, Feb 10, 6:15 PM

Thu, Feb 6

glebius accepted D23483: Fix for unbalanced EPOCH(9) usage in kernel interrupt handler.
Thu, Feb 6, 11:30 PM

Wed, Feb 5

glebius accepted D23515: Temporarily force IFF_NEEDSEPOCH until drivers have been resolved..
Wed, Feb 5, 6:00 PM
glebius added a comment to D23408: epoch support for taskqueues.

Since this revision was commandeered, I created a new one: https://reviews.freebsd.org/D23518

Wed, Feb 5, 5:58 PM
glebius updated the summary of D23518: epoch support for taskqueues [2].
Wed, Feb 5, 5:53 PM
glebius retitled D23518: epoch support for taskqueues [2] from Summary: epoch support for taskqueues [2] to epoch support for taskqueues [2].
Wed, Feb 5, 5:53 PM
glebius created D23518: epoch support for taskqueues [2].
Wed, Feb 5, 5:52 PM
glebius added inline comments to D23483: Fix for unbalanced EPOCH(9) usage in kernel interrupt handler.
Wed, Feb 5, 5:08 PM
glebius committed rS357559: I doubt anybody in the world uses ng_device, but its write method should.
I doubt anybody in the world uses ng_device, but its write method should
Wed, Feb 5, 3:07 AM
glebius committed rS357558: Enter the network epoch when ng_socket sends data or control from user.
Enter the network epoch when ng_socket sends data or control from user
Wed, Feb 5, 3:06 AM
glebius committed rS357557: netgraph(4) callouts need to be executed in the network epoch..
netgraph(4) callouts need to be executed in the network epoch.
Wed, Feb 5, 2:53 AM

Mon, Feb 3

glebius committed rS357466: Couple protocol drain routines (frag6_drain and sctp_drain) may send.
Couple protocol drain routines (frag6_drain and sctp_drain) may send
Mon, Feb 3, 8:49 PM

Sat, Feb 1

glebius commandeered D23408: epoch support for taskqueues.

Hans, first you start commit war in subversion and then you "commandeer" my revision. We will not make any progress if you "help" like this.

Sat, Feb 1, 4:02 AM

Thu, Jan 30

glebius added a comment to D23408: epoch support for taskqueues.

In the kernel there are 403 instances of TASK_INIT(). In this patch I only see NET_TASK_INIT() used 5 times. Does this justify the increased memory usage of "struct task".
grep -r TASK_INIT\( sys/ | grep -v GTASK | wc -l

403
Thu, Jan 30, 8:47 PM
glebius committed rS357279: Fix text format definition for kern.maxvnodes, vfs.wantfreevnodes. This.
Fix text format definition for kern.maxvnodes, vfs.wantfreevnodes. This
Thu, Jan 30, 12:18 AM

Wed, Jan 29

glebius committed rS357276: Fix missing NET_EPOCH_ENTER() when compiled with TCP_OFFLOAD..
Fix missing NET_EPOCH_ENTER() when compiled with TCP_OFFLOAD.
Wed, Jan 29, 10:48 PM
glebius updated the diff for D23408: epoch support for taskqueues.
  • Add a temporary compatibility hack to ease transition to new ABI
  • Bump kernel version.
Wed, Jan 29, 9:49 PM
glebius added a comment to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Can you please point me to broken USB WLANs?

Please read through this patch and you'll see.

Wed, Jan 29, 8:18 PM
glebius added inline comments to D23408: epoch support for taskqueues.
Wed, Jan 29, 8:14 PM

Tue, Jan 28

glebius updated the summary of D23408: epoch support for taskqueues.
Tue, Jan 28, 9:38 PM
glebius updated the summary of D23408: epoch support for taskqueues.
Tue, Jan 28, 9:37 PM
glebius retitled D23408: epoch support for taskqueues from Add optional epoch to struct task and struct gtask. When processing a taskqueue and a task has associated epoch, then enter for duration of the task. If consecutive tasks belong to the same epoch, batch them. Revert manual NET_EPOCH_ENTER/EXIT... to epoch support for taskqueues.
Tue, Jan 28, 9:37 PM
glebius created D23408: epoch support for taskqueues.
Tue, Jan 28, 9:36 PM
glebius added a comment to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Two drivers of many USB WLANs were fixed! And you've left the rest broken. This is not good!

Tue, Jan 28, 9:32 PM
glebius added a comment to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Let me repeat myself about LinuxKPI. The fact that it puts INTR_TYPE_NET on any interrupt is a mistake in LinuxKPI, not in my patch.

I disagree. INTR_TYPE_NET is only an indicator of interrupt thread priority, and should not be bound to network drivers only!

Tue, Jan 28, 9:31 PM
glebius added a comment to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Already many ethernet drivers are almost C&P of each other and putting the EPOCH into the drivers makes sense, because for many older PCI devices, there are many kinds of interrupt sources, like TX completion interrupts, LINK events, and doing the EPOCH for those cases is not needed. Also some drivers use INTR_TYPE_NET which are not network drivers, for example the LinuxKPI.

Tue, Jan 28, 12:50 AM
glebius added a comment to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

@glebius: Or do you claim that all these drivers are broken in head and this change is required to fix them?
I claim that many of the drivers I've patched are broken.
Debugnet is broken.
All USB WLAN is broken.

Tue, Jan 28, 12:43 AM

Mon, Jan 27

glebius requested changes to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Do you suggest this change as an alternative to D23242? Cause you added epoch in many places where we already are in epoch, for example interrupt handlers and polling handlers. Or do you claim that all these drivers are broken in head and this change is required to fix them?

Mon, Jan 27, 7:58 PM

Sat, Jan 25

glebius committed rS357102: Enter the network epoch in RX processing taskqueue..
Enter the network epoch in RX processing taskqueue.
Sat, Jan 25, 12:06 AM

Fri, Jan 24

glebius committed rS357094: Enter the network epoch when rack_output() is called in setsockopt(2)..
Enter the network epoch when rack_output() is called in setsockopt(2).
Fri, Jan 24, 9:56 PM
glebius committed rS357093: Enter the network epoch in USB WiFi drivers when processing input.
Enter the network epoch in USB WiFi drivers when processing input
Fri, Jan 24, 9:04 PM
glebius committed rS357090: re(4) uses taskqueue to process input packets. Enter network epoch.
re(4) uses taskqueue to process input packets. Enter network epoch
Fri, Jan 24, 5:24 PM
glebius committed rS357088: ath(4) processing input packets in taskqueue. Enter network epoch.
ath(4) processing input packets in taskqueue. Enter network epoch
Fri, Jan 24, 5:12 PM
glebius requested changes to D23348: Widen EPOCH(9) usage in network drivers (as a pre-step for D23347).

Minority of drivers need this flag and the future plan is none will need.

Fri, Jan 24, 4:54 PM

Thu, Jan 23

glebius committed rS357051: With MSI interrupts bge(4) just schedules taskqueue. Enter the network.
With MSI interrupts bge(4) just schedules taskqueue. Enter the network
Thu, Jan 23, 4:37 PM
glebius committed rS357013: Since now drivers that support pfil run their interrupts in the network.
Since now drivers that support pfil run their interrupts in the network
Thu, Jan 23, 1:49 AM
glebius committed rS357012: Stop entering the network epoch in ether_input(), unless driver.
Stop entering the network epoch in ether_input(), unless driver
Thu, Jan 23, 1:48 AM
glebius committed rS357011: This is Ethernet driver so mark the interrupt appropriately..
This is Ethernet driver so mark the interrupt appropriately.
Thu, Jan 23, 1:46 AM
glebius committed rS357010: Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that.
Introduce flag IFF_NEEDSEPOCH that marks Ethernet interfaces that
Thu, Jan 23, 1:41 AM
glebius committed rS357009: tap(4) calls ether_input() in context of write(2). Enter network.
tap(4) calls ether_input() in context of write(2). Enter network
Thu, Jan 23, 1:39 AM
glebius committed rS357008: In netmap() call ether_input() within the network epoch..
In netmap() call ether_input() within the network epoch.
Thu, Jan 23, 1:35 AM
glebius committed rS357007: DEVICE_POLLING is an alternative to network interrupts and also.
DEVICE_POLLING is an alternative to network interrupts and also
Thu, Jan 23, 1:31 AM
glebius committed rS357006: Enter network epoch in iflib rxeof task..
Enter network epoch in iflib rxeof task.
Thu, Jan 23, 1:28 AM
glebius committed rS357005: Mark swi_net() as INTR_TYPE_NET and stop entering epoch there..
Mark swi_net() as INTR_TYPE_NET and stop entering epoch there.
Thu, Jan 23, 1:25 AM
glebius closed D23242: Enter network epoch for network interrupts.
Thu, Jan 23, 1:25 AM
glebius committed rS357004: Enter the network epoch for interrupt handlers of INTR_TYPE_NET..
Enter the network epoch for interrupt handlers of INTR_TYPE_NET.
Thu, Jan 23, 1:25 AM
glebius committed rS357003: Add ie_hflags to struct intr_event, which accumulates flags from all.
Add ie_hflags to struct intr_event, which accumulates flags from all
Thu, Jan 23, 1:21 AM
glebius accepted D23317: Fix epoch-related panic in ipdivert & refactor div_output..
Thu, Jan 23, 12:50 AM

Wed, Jan 22

glebius committed rS356989: Plug possible calls into ip6?_output() without network epoch from SCTP.
Plug possible calls into ip6?_output() without network epoch from SCTP
Wed, Jan 22, 5:19 PM
glebius committed rS356988: Enter network epoch when calling in_pcbconnect() for IPv6 mapped to IPv4.
Enter network epoch when calling in_pcbconnect() for IPv6 mapped to IPv4
Wed, Jan 22, 5:07 PM
glebius closed D23187: Widen epoch coverage (step 2) + refactor PCB info locking (step 2)..
Wed, Jan 22, 6:11 AM
glebius committed rS356983: Make in_pcbladdr() require network epoch entered by its callers. Together.
Make in_pcbladdr() require network epoch entered by its callers. Together
Wed, Jan 22, 6:11 AM
glebius committed rS356982: Remove extraneous NET_EPOCH_ASSERT - the full function is covered..
Remove extraneous NET_EPOCH_ASSERT - the full function is covered.
Wed, Jan 22, 6:07 AM
glebius committed rS356981: Re-absorb tcp_detach() back into tcp_usr_detach() as the comment suggests..
Re-absorb tcp_detach() back into tcp_usr_detach() as the comment suggests.
Wed, Jan 22, 6:06 AM
glebius committed rS356980: Don't enter network epoch in tcp_usr_detach. A PCB removal doesn't.
Don't enter network epoch in tcp_usr_detach. A PCB removal doesn't
Wed, Jan 22, 6:05 AM
glebius committed rS356979: The network epoch changes in the TCP stack combined with old r286227,.
The network epoch changes in the TCP stack combined with old r286227,
Wed, Jan 22, 6:03 AM
glebius committed rS356978: tcp_usr_attach() doesn't need network epoch. in_pcbfree() and.
tcp_usr_attach() doesn't need network epoch. in_pcbfree() and
Wed, Jan 22, 6:01 AM
glebius committed rS356977: Relax locking requirements for in_pcballoc(). All pcbinfo fields.
Relax locking requirements for in_pcballoc(). All pcbinfo fields
Wed, Jan 22, 5:58 AM
glebius committed rS356976: Inline tcp_attach() into tcp_usr_attach(). Not a functional change..
Inline tcp_attach() into tcp_usr_attach(). Not a functional change.
Wed, Jan 22, 5:55 AM
glebius committed rS356975: Make tcp_output() require network epoch..
Make tcp_output() require network epoch.
Wed, Jan 22, 5:53 AM
glebius committed rS356974: Make ip6_output() and ip_output() require network epoch..
Make ip6_output() and ip_output() require network epoch.
Wed, Jan 22, 5:51 AM
glebius committed rS356973: Remove struct callout_handle. Should have gone with r355732..
Remove struct callout_handle. Should have gone with r355732.
Wed, Jan 22, 5:48 AM
glebius committed rS356972: Remove comment that no longer describe reality..
Remove comment that no longer describe reality.
Wed, Jan 22, 5:32 AM
glebius committed rS356971: In compatibility structure substitute 'struct callout_handle'.
In compatibility structure substitute 'struct callout_handle'
Wed, Jan 22, 5:31 AM
glebius updated the diff for D23187: Widen epoch coverage (step 2) + refactor PCB info locking (step 2)..

Rebase to fresh master.

Wed, Jan 22, 3:15 AM
glebius added inline comments to D23242: Enter network epoch for network interrupts.
Wed, Jan 22, 3:11 AM
glebius updated the diff for D23242: Enter network epoch for network interrupts.

Rebased to fresh master.

Wed, Jan 22, 3:09 AM
glebius committed rS356970: Add documenting NET_EPOCH_ASSERT() to tcp_drop()..
Add documenting NET_EPOCH_ASSERT() to tcp_drop().
Wed, Jan 22, 2:39 AM
glebius committed rS356969: Add some documenting NET_EPOCH_ASSERTs..
Add some documenting NET_EPOCH_ASSERTs.
Wed, Jan 22, 2:38 AM
glebius committed rS356968: Unroll macro that is used just once. Not a functional change..
Unroll macro that is used just once. Not a functional change.
Wed, Jan 22, 2:36 AM
glebius committed rS356967: Change argument order of epoch_call() to more natural, first function,.
Change argument order of epoch_call() to more natural, first function,
Wed, Jan 22, 2:28 AM

Mon, Jan 20

glebius accepted D23254: pf: Apply kif flags to new group members.
Mon, Jan 20, 10:34 PM
glebius added a comment to D23187: Widen epoch coverage (step 2) + refactor PCB info locking (step 2)..

I'd really appreciate some reviewing. I'm going to commit this week.

Mon, Jan 20, 6:21 PM
glebius added a comment to D23242: Enter network epoch for network interrupts.

I'd really appreciate some reviewing. I'm going to commit this week.

Mon, Jan 20, 6:21 PM

Jan 17 2020

glebius updated the diff for D23242: Enter network epoch for network interrupts.

Clarify unclear comment.

Jan 17 2020, 9:47 PM
glebius updated subscribers of D23242: Enter network epoch for network interrupts.
Jan 17 2020, 9:06 PM
glebius created D23242: Enter network epoch for network interrupts.
Jan 17 2020, 9:05 PM
glebius added a comment to D23238: [uma-multipage 2/3] uma: convert mbuf_jumbo_alloc & pmap_pdpt_alloc to UMA_ZONE_CONTIG.

I see. That's because in next review we may produce multipage slabs with an allocation crossing a boundary.

Jan 17 2020, 7:41 PM
glebius added a comment to D23238: [uma-multipage 2/3] uma: convert mbuf_jumbo_alloc & pmap_pdpt_alloc to UMA_ZONE_CONTIG.

Why did you convert all mbuf zones to contig? Only jumbo 9k and jumbo 16k really require that.

Jan 17 2020, 7:08 PM
glebius committed rS356826: Change argument order of epoch_call() to more natural, first function,.
Change argument order of epoch_call() to more natural, first function,
Jan 17 2020, 6:10 AM

Jan 15 2020

glebius committed rS356757: gif_transmit() must always be called in the network epoch..
gif_transmit() must always be called in the network epoch.
Jan 15 2020, 6:18 AM