All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jun Miao <jun.miao@intel.com>,
	jarkko@kernel.org, dave.hansen@linux.intel.com
Cc: oe-kbuild-all@lists.linux.dev, kai.huang@intel.com,
	challvy.tee@gmail.com, fan.du@intel.com, jun.miao@intel.com,
	linux-kernel@vger.kernel.org, qiang.zhang@linux.dev
Subject: Re: [PATCH v2] x86/sgx: Fix RCU Tasks stalls in EPC sanitization loop
Date: Tue, 18 Aug 2026 08:06:47 +0200	[thread overview]
Message-ID: <202608180846.b3eJmlOU-lkp@intel.com> (raw)
In-Reply-To: <20260623030329.2786571-1-jun.miao@intel.com>

Hi Jun,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on tip/x86/sgx v7.2 next-20260817]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jun-Miao/x86-sgx-Fix-RCU-Tasks-stalls-in-EPC-sanitization-loop/20260815-121253
base:   linus/master
patch link:    https://lore.kernel.org/r/20260623030329.2786571-1-jun.miao%40intel.com
patch subject: [PATCH v2] x86/sgx: Fix RCU Tasks stalls in EPC sanitization loop
config: x86_64-rhel-9.4-bpf (https://download.01.org/0day-ci/archive/20260818/202608180846.b3eJmlOU-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260818/202608180846.b3eJmlOU-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608180846.b3eJmlOU-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kernel/cpu/sgx/main.c: In function '__sgx_sanitize_pages':
>> arch/x86/kernel/cpu/sgx/main.c:109:17: error: implicit declaration of function 'cond_resched_rcu_qs'; did you mean 'cond_resched_lock'? [-Wimplicit-function-declaration]
     109 |                 cond_resched_rcu_qs();
         |                 ^~~~~~~~~~~~~~~~~~~
         |                 cond_resched_lock


vim +109 arch/x86/kernel/cpu/sgx/main.c

    54	
    55	/*
    56	 * Reset post-kexec EPC pages to the uninitialized state. The pages are removed
    57	 * from the input list, and made available for the page allocator. SECS pages
    58	 * prepending their children in the input list are left intact.
    59	 *
    60	 * Return 0 when sanitization was successful or kthread was stopped, and the
    61	 * number of unsanitized pages otherwise.
    62	 */
    63	static unsigned long __sgx_sanitize_pages(struct list_head *dirty_page_list)
    64	{
    65		unsigned long left_dirty = 0;
    66		struct sgx_epc_page *page;
    67		LIST_HEAD(dirty);
    68		int ret;
    69	
    70		/* dirty_page_list is thread-local, no need for a lock: */
    71		while (!list_empty(dirty_page_list)) {
    72			if (kthread_should_stop())
    73				return 0;
    74	
    75			page = list_first_entry(dirty_page_list, struct sgx_epc_page, list);
    76	
    77			/*
    78			 * Checking page->poison without holding the node->lock
    79			 * is racy, but losing the race (i.e. poison is set just
    80			 * after the check) just means __eremove() will be uselessly
    81			 * called for a page that sgx_free_epc_page() will put onto
    82			 * the node->sgx_poison_page_list later.
    83			 */
    84			if (page->poison) {
    85				struct sgx_epc_section *section = &sgx_epc_sections[page->section];
    86				struct sgx_numa_node *node = section->node;
    87	
    88				spin_lock(&node->lock);
    89				list_move(&page->list, &node->sgx_poison_page_list);
    90				spin_unlock(&node->lock);
    91	
    92				continue;
    93			}
    94	
    95			ret = __eremove(sgx_get_epc_virt_addr(page));
    96			if (!ret) {
    97				/*
    98				 * page is now sanitized.  Make it available via the SGX
    99				 * page allocator:
   100				 */
   101				list_del(&page->list);
   102				sgx_free_epc_page(page);
   103			} else {
   104				/* The page is not yet clean - move to the dirty list. */
   105				list_move_tail(&page->list, &dirty);
   106				left_dirty++;
   107			}
   108	
 > 109			cond_resched_rcu_qs();
   110		}
   111	
   112		list_splice(&dirty, dirty_page_list);
   113		return left_dirty;
   114	}
   115	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      reply	other threads:[~2026-08-18  6:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-23  3:03 [PATCH v2] x86/sgx: Fix RCU Tasks stalls in EPC sanitization loop Jun Miao
2026-08-18  6:06 ` kernel test robot [this message]

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=202608180846.b3eJmlOU-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=challvy.tee@gmail.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=fan.du@intel.com \
    --cc=jarkko@kernel.org \
    --cc=jun.miao@intel.com \
    --cc=kai.huang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=qiang.zhang@linux.dev \
    /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 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.