In my production environment there are many schedulers and pipes & queues belongs to this scheds. dummynet uses %90-100 percent of single cpu. (ie. 20 scheds, 30 pipes, 35 queues total. Each pipe has max 30-100Mbps)
In my idea, by distributing schedulers to different threads, all pipes that belongs to same scheduler also should run on same thread. By this way, dummynet can manage much higher total bandwidths. Thanks for greate explanation. In another way, for each scheduler we can create a new taskqueue_thread, Is it possible if dummnet_io() function will stay as is (in main thread), and it should call the right schedulers enqueue function that runs different thread? cheers Ozkan On Thu, Apr 9, 2020 at 12:43 PM Luigi Rizzo <ri...@iet.unipi.it> wrote: > On Thu, Apr 9, 2020 at 2:18 AM Özkan KIRIK <ozkan.ki...@gmail.com> wrote: > > > > Hello, > > > > I wonder if it is possible to update dummynet code multi-threading > capable > > practically? > > My idea is below: > > - A new sysctl tunable will be defined as > > "net.inet.ip.dummynet.thread_count" (default 1) > > - To distribute tasks along threads, each sched instance can be assigned > to > > different thread. > > ... > > What are you trying to achieve ? In general, the scheduler needs to > know the state of all flows to perform correct scheduling of traffic. > You could in principle split the load on multiple threads under specific, > very restrictive conditions (each thread runs a different scheduler, they > cannot share the excess bandwidth, and the total bw does not exceed the > link's capacity, each scheduler has a different queue on the NIC). > > cheers > luigi > _______________________________________________ freebsd-net@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"