All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v0.7 3/5] sched/umcg: implement UMCG syscalls
@ 2021-10-13 18:56 kernel test robot
  2021-10-14  6:41 ` Dan Carpenter
  0 siblings, 1 reply; 11+ messages in thread
From: kernel test robot @ 2021-10-13 18:56 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6675 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20211012232522.714898-4-posk@google.com>
References: <20211012232522.714898-4-posk@google.com>
TO: Peter Oskolkov <posk@posk.io>
TO: Peter Zijlstra <peterz@infradead.org>
TO: Ingo Molnar <mingo@redhat.com>
TO: Thomas Gleixner <tglx@linutronix.de>
TO: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Dave Hansen <dave.hansen@linux.intel.com>
TO: Andy Lutomirski <luto@kernel.org>
TO: linux-kernel(a)vger.kernel.org
TO: linux-api(a)vger.kernel.org
CC: Paul Turner <pjt@google.com>

Hi Peter,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on hnaz-mm/master]
[cannot apply to tip/master tip/x86/core arnd-asm-generic/master linus/master tip/x86/asm tip/core/entry v5.15-rc5 next-20211013]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Peter-Oskolkov/sched-mm-x86-uaccess-implement-User-Managed-Concurrency-Groups/20211013-072710
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git b2d5b9cec60fecc72a13191c2c6c05acf60975a5
:::::: branch date: 19 hours ago
:::::: commit date: 19 hours ago
config: x86_64-randconfig-m001-20211013 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/sched/core.c:6294 sched_update_worker() warn: bitwise AND condition is false here
kernel/sched/core.c:6272 sched_submit_work() warn: bitwise AND condition is false here

vim +6294 kernel/sched/core.c

9af6528ee9b682 kernel/sched/core.c Peter Zijlstra            2016-09-13  6256  
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6257  static inline void sched_submit_work(struct task_struct *tsk)
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6258  {
c1cecf884ad748 kernel/sched/core.c Sebastian Andrzej Siewior 2020-08-19  6259  	unsigned int task_flags;
c1cecf884ad748 kernel/sched/core.c Sebastian Andrzej Siewior 2020-08-19  6260  
b03fbd4ff24c5f kernel/sched/core.c Peter Zijlstra            2021-06-11  6261  	if (task_is_running(tsk))
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6262  		return;
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6263  
c1cecf884ad748 kernel/sched/core.c Sebastian Andrzej Siewior 2020-08-19  6264  	task_flags = tsk->flags;
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6265  	/*
b945efcdd07d86 kernel/sched/core.c Thomas Gleixner           2021-09-29  6266  	 * If a worker goes to sleep, notify and ask workqueue whether it
b945efcdd07d86 kernel/sched/core.c Thomas Gleixner           2021-09-29  6267  	 * wants to wake up a task to maintain concurrency.
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6268  	 */
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12  6269  	if (task_flags & (PF_WQ_WORKER | PF_IO_WORKER | PF_UMCG_WORKER)) {
c1cecf884ad748 kernel/sched/core.c Sebastian Andrzej Siewior 2020-08-19  6270  		if (task_flags & PF_WQ_WORKER)
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6271  			wq_worker_sleeping(tsk);
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12 @6272  		else if (task_flags & PF_UMCG_WORKER)
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12  6273  			umcg_wq_worker_sleeping(tsk);
771b53d033e866 kernel/sched/core.c Jens Axboe                2019-10-22  6274  		else
771b53d033e866 kernel/sched/core.c Jens Axboe                2019-10-22  6275  			io_wq_worker_sleeping(tsk);
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6276  	}
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6277  
b0fdc01354f45d kernel/sched/core.c Sebastian Andrzej Siewior 2019-08-16  6278  	if (tsk_is_pi_blocked(tsk))
b0fdc01354f45d kernel/sched/core.c Sebastian Andrzej Siewior 2019-08-16  6279  		return;
b0fdc01354f45d kernel/sched/core.c Sebastian Andrzej Siewior 2019-08-16  6280  
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6281  	/*
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6282  	 * If we are going to sleep and we have plugged IO queued,
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6283  	 * make sure to submit it to avoid deadlocks.
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6284  	 */
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6285  	if (blk_needs_flush_plug(tsk))
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6286  		blk_schedule_flush_plug(tsk);
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6287  }
9c40cef2b799f9 kernel/sched.c      Thomas Gleixner           2011-06-22  6288  
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6289  static void sched_update_worker(struct task_struct *tsk)
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6290  {
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12  6291  	if (tsk->flags & (PF_WQ_WORKER | PF_IO_WORKER | PF_UMCG_WORKER)) {
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6292  		if (tsk->flags & PF_WQ_WORKER)
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6293  			wq_worker_running(tsk);
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12 @6294  		else if (tsk->flags & PF_UMCG_WORKER)
0dcffc800cf354 kernel/sched/core.c Peter Oskolkov            2021-10-12  6295  			umcg_wq_worker_running(tsk);
771b53d033e866 kernel/sched/core.c Jens Axboe                2019-10-22  6296  		else
771b53d033e866 kernel/sched/core.c Jens Axboe                2019-10-22  6297  			io_wq_worker_running(tsk);
771b53d033e866 kernel/sched/core.c Jens Axboe                2019-10-22  6298  	}
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6299  }
6d25be5782e482 kernel/sched/core.c Thomas Gleixner           2019-03-13  6300  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31469 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread
* [PATCH v0.7 0/5] sched,mm,x86/uaccess: implement User Managed Concurrency Groups
@ 2021-10-12 23:25 Peter Oskolkov
  2021-10-12 23:25 ` [PATCH v0.7 3/5] sched/umcg: implement UMCG syscalls Peter Oskolkov
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Oskolkov @ 2021-10-12 23:25 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Andrew Morton,
	Dave Hansen, Andy Lutomirski, linux-mm, linux-kernel, linux-api
  Cc: Paul Turner, Ben Segall, Peter Oskolkov, Peter Oskolkov,
	Andrei Vagin, Jann Horn, Thierry Delisle

User Managed Concurrency Groups (UMCG) is an M:N threading
subsystem/toolkit that lets user space application developers implement
in-process user space schedulers.

Key changes from the previous patchset
https://lore.kernel.org/all/20210917180323.278250-1-posk@google.com/ :

- userspace atomic helpers moved into mm/
- UMCG task states are now tagged with timestamps
- cross-mm interactions (wakeups) are not permitted
- several smaller fixes and refactorings

These big things remain to be addressed (in no particular order):
- support tracing/debugging
- make context switches faster (see umcg_do_context_switch in umcg.c)
- support other architectures
- cleanup and post userspace support in tools/lib/umcg/
- cleanup and post selftests in tools/testing/selftests/umcg/
- allow cross-mm wakeups (securely)

I'm working on finalizing libumcg and kselftests.

Signed-off-by: Peter Oskolkov <posk@google.com>

Peter Oskolkov (5):
  sched/umcg: add WF_CURRENT_CPU and externise ttwu
  mm, x86/uaccess: add userspace atomic helpers
  sched/umcg: implement UMCG syscalls
  sched/umcg: add Documentation/userspace-api/umcg.rst
  sched/umcg: add Documentation/userspace-api/umcg.txt

 Documentation/userspace-api/umcg.rst   | 611 ++++++++++++++++
 Documentation/userspace-api/umcg.txt   | 594 ++++++++++++++++
 arch/x86/entry/syscalls/syscall_64.tbl |   2 +
 arch/x86/include/asm/uaccess_64.h      |  93 +++
 fs/exec.c                              |   1 +
 include/linux/sched.h                  |  71 ++
 include/linux/syscalls.h               |   3 +
 include/linux/uaccess.h                |  46 ++
 include/uapi/asm-generic/unistd.h      |   6 +-
 include/uapi/linux/umcg.h              | 137 ++++
 init/Kconfig                           |  10 +
 kernel/entry/common.c                  |   4 +-
 kernel/exit.c                          |   5 +
 kernel/sched/Makefile                  |   1 +
 kernel/sched/core.c                    |  12 +-
 kernel/sched/fair.c                    |   4 +
 kernel/sched/sched.h                   |  15 +-
 kernel/sched/umcg.c                    | 926 +++++++++++++++++++++++++
 kernel/sys_ni.c                        |   4 +
 mm/maccess.c                           | 264 +++++++
 20 files changed, 2797 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/userspace-api/umcg.rst
 create mode 100644 Documentation/userspace-api/umcg.txt
 create mode 100644 include/uapi/linux/umcg.h
 create mode 100644 kernel/sched/umcg.c

--
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-10-18 15:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 18:56 [PATCH v0.7 3/5] sched/umcg: implement UMCG syscalls kernel test robot
2021-10-14  6:41 ` Dan Carpenter
2021-10-15  1:27   ` Yujie Liu
  -- strict thread matches above, loose matches on Subject: below --
2021-10-12 23:25 [PATCH v0.7 0/5] sched,mm,x86/uaccess: implement User Managed Concurrency Groups Peter Oskolkov
2021-10-12 23:25 ` [PATCH v0.7 3/5] sched/umcg: implement UMCG syscalls Peter Oskolkov
2021-10-13 19:43   ` kernel test robot
2021-10-13 19:43     ` kernel test robot
2021-10-13 21:47   ` kernel test robot
2021-10-13 21:47     ` kernel test robot
2021-10-15 21:40   ` kernel test robot
2021-10-15 21:40     ` kernel test robot
2021-10-18 15:23   ` Tao Zhou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.