llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Prakash Sangappa <prakash.sangappa@oracle.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [RESEND RFC PATCH 1/3] Introduce per thread user-kernel shared structure
Date: Fri, 10 Sep 2021 01:27:01 +0800	[thread overview]
Message-ID: <202109100149.Refp6Roi-lkp@intel.com> (raw)
In-Reply-To: <1631147036-13597-2-git-send-email-prakash.sangappa@oracle.com>

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

Hi Prakash,

[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on v5.14]
[cannot apply to tip/sched/core hnaz-linux-mm/master linus/master tip/x86/asm next-20210909]
[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/Prakash-Sangappa/Provide-fast-access-to-thread-specific-data/20210909-081749
base:    7d2a07b769330c34b4deabeed939325c77a7ec2f
config: hexagon-randconfig-r036-20210908 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/06c86997c20b19402390733cbb6b96acc3f9cf3b
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Prakash-Sangappa/Provide-fast-access-to-thread-specific-data/20210909-081749
        git checkout 06c86997c20b19402390733cbb6b96acc3f9cf3b
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=hexagon SHELL=/bin/bash

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 >>):

   mm/task_shared.c:264:1: warning: unused label 'out' [-Wunused-label]
   out:
   ^~~~
>> mm/task_shared.c:298:1: error: conflicting types for 'sys_task_getshared'
   SYSCALL_DEFINE3(task_getshared, u64, opt, u64, flags, void __user *, uaddr)
   ^
   include/linux/syscalls.h:218:36: note: expanded from macro 'SYSCALL_DEFINE3'
   #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
                                      ^
   include/linux/syscalls.h:227:2: note: expanded from macro 'SYSCALL_DEFINEx'
           __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
           ^
   include/linux/syscalls.h:241:18: note: expanded from macro '__SYSCALL_DEFINEx'
           asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))       \
                           ^
   <scratch space>:129:1: note: expanded from here
   sys_task_getshared
   ^
   include/linux/syscalls.h:1055:17: note: previous declaration is here
   asmlinkage long sys_task_getshared(long opt, long flags, void __user *uaddr);
                   ^
   1 warning and 1 error generated.


vim +/sys_task_getshared +298 mm/task_shared.c

   200	
   201	
   202	/*
   203	 * Allocate task_ushared struct for calling thread.
   204	 */
   205	static int task_ushared_alloc(void)
   206	{
   207		struct mm_struct *mm = current->mm;
   208		struct ushared_pg *ent = NULL;
   209		struct task_ushrd_struct *ushrd;
   210		struct ushared_pages *usharedpg;
   211		int tryalloc = 0;
   212		int slot = -1;
   213		int ret = -ENOMEM;
   214	
   215		if (mm->usharedpg == NULL && init_mm_ushared(mm))
   216			return ret;
   217	
   218		if (current->task_ushrd == NULL && init_task_ushrd(current))
   219			return ret;
   220	
   221		usharedpg = mm->usharedpg;
   222		ushrd = current->task_ushrd;
   223	repeat:
   224		if (mmap_write_lock_killable(mm))
   225			return -EINTR;
   226	
   227		ent = list_empty(&usharedpg->frlist) ? NULL :
   228			list_entry(usharedpg->frlist.next,
   229			struct ushared_pg, fr_list);
   230	
   231		if (ent == NULL || ent->slot_count == 0) {
   232			if (tryalloc == 0) {
   233				mmap_write_unlock(mm);
   234				(void)ushared_allocpg();
   235				tryalloc = 1;
   236				goto repeat;
   237			} else {
   238				ent = NULL;
   239			}
   240		}
   241	
   242		if (ent) {
   243			slot = find_first_zero_bit((unsigned long *)(&ent->bitmap),
   244			  TASK_USHARED_SLOTS);
   245			BUG_ON(slot >=  TASK_USHARED_SLOTS);
   246	
   247			set_bit(slot, (unsigned long *)(&ent->bitmap));
   248	
   249			ushrd->uaddr = (struct task_ushared *)(ent->vaddr +
   250			  (slot * sizeof(union task_shared)));
   251			ushrd->kaddr = (struct task_ushared *)(ent->kaddr +
   252			  (slot * sizeof(union task_shared)));
   253			ushrd->upg = ent;
   254			ent->slot_count--;
   255			/* move it to tail */
   256			if (ent->slot_count == 0) {
   257				list_del(&ent->fr_list);
   258				list_add_tail(&ent->fr_list, &usharedpg->frlist);
   259			}
   260	
   261		       ret = 0;
   262		}
   263	
 > 264	out:
   265		mmap_write_unlock(mm);
   266		return ret;
   267	}
   268	
   269	
   270	/*
   271	 * Task Shared : allocate if needed, and return address of shared struct for
   272	 * this thread/task.
   273	 */
   274	static long task_getshared(u64 opt, u64 flags, void __user *uaddr)
   275	{
   276		struct task_ushrd_struct *ushrd = current->task_ushrd;
   277	
   278		/* We have address, return. */
   279		if (ushrd != NULL && ushrd->upg != NULL) {
   280			if (copy_to_user(uaddr, &ushrd->uaddr,
   281				sizeof(struct task_ushared *)))
   282				return (-EFAULT);
   283			return 0;
   284		}
   285	
   286		task_ushared_alloc();
   287		ushrd = current->task_ushrd;
   288		if (ushrd != NULL && ushrd->upg != NULL) {
   289			if (copy_to_user(uaddr, &ushrd->uaddr,
   290				sizeof(struct task_ushared *)))
   291				return (-EFAULT);
   292			return 0;
   293		}
   294		return (-ENOMEM);
   295	}
   296	
   297	
 > 298	SYSCALL_DEFINE3(task_getshared, u64, opt, u64, flags, void __user *, uaddr)

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

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

           reply	other threads:[~2021-09-09 17:27 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <1631147036-13597-2-git-send-email-prakash.sangappa@oracle.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202109100149.Refp6Roi-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=llvm@lists.linux.dev \
    --cc=prakash.sangappa@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).