Messages in this thread Patch in this message | | | Date | Mon, 20 Jul 2020 23:49:18 +0200 | From | Peter Zijlstra <> | Subject | Re: [tip:sched/fifo 44/45] ERROR: modpost: "sched_setscheduler" undefined! |
| |
On Thu, Jul 09, 2020 at 11:58:18AM -0400, Steven Rostedt wrote: > On Thu, 9 Jul 2020 14:45:05 +0200 > Peter Zijlstra <peterz@infradead.org> wrote: > > > On Fri, Jun 19, 2020 at 10:15:51PM +0800, kernel test robot wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/fifo > > > head: 8b700983de82f79e05b2c1136d6513ea4c9b22c4 > > > commit: 616d91b68cd56bcb1954b6a5af7d542401fde772 [44/45] sched: Remove sched_setscheduler*() EXPORTs > > > config: x86_64-rhel (attached as .config) > > > compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 > > > reproduce (this is a W=1 build): > > > git checkout 616d91b68cd56bcb1954b6a5af7d542401fde772 > > > # save the attached .config to linux build tree > > > make W=1 ARCH=x86_64 > > > > > > If you fix the issue, kindly add following tag as appropriate > > > Reported-by: kernel test robot <lkp@intel.com> > > > > > > All errors (new ones prefixed by >>, old ones prefixed by <<): > > > > > > >> ERROR: modpost: "sched_setscheduler" [kernel/trace/ring_buffer_benchmark.ko] undefined! > > > > Steve, do you have any preference on how to go about fixing this one? > > Well, I use to manually set the priority of the test, but I guess we > can switch the parameters to accepting a "high, medium, and low" that > will correspond to your setting of the other sched_setscheduler() calls > that were replaced.
Steve, would this work for you, or would you prefer renaming the parameters as well?
--- kernel/trace/ring_buffer_benchmark.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/kernel/trace/ring_buffer_benchmark.c b/kernel/trace/ring_buffer_benchmark.c index 8df0aa810950..0ee3d41ceee4 100644 --- a/kernel/trace/ring_buffer_benchmark.c +++ b/kernel/trace/ring_buffer_benchmark.c @@ -455,21 +455,19 @@ static int __init ring_buffer_benchmark_init(void) * Run them as low-prio background tasks by default: */ if (!disable_reader) { - if (consumer_fifo >= 0) { - struct sched_param param = { - .sched_priority = consumer_fifo - }; - sched_setscheduler(consumer, SCHED_FIFO, ¶m); - } else + if (consumer_fifo > 1) + sched_set_fifo(consumer); + else if (consumer_fifo >= 0) + sched_set_fifo_low(consumer); + else set_user_nice(consumer, consumer_nice); } - if (producer_fifo >= 0) { - struct sched_param param = { - .sched_priority = producer_fifo - }; - sched_setscheduler(producer, SCHED_FIFO, ¶m); - } else + if (producer_fifo > 1) + sched_set_fifo(producer); + else if (producer_fifo >= 0) + sched_set_fifo_low(producer); + else set_user_nice(producer, producer_nice); return 0;
| |