All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC 2/2] dirvers & fs: add sram driver and sramfs
Date: Sat, 05 Oct 2019 02:58:02 +0800	[thread overview]
Message-ID: <201910050217.S5macP5D%lkp@intel.com> (raw)
In-Reply-To: <20191004133855.17474-3-l.luba@partner.samsung.com>

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

Hi Lukasz,

[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on char-misc/char-misc-testing]
[cannot apply to v5.4-rc1 next-20191004]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Lukasz-Luba/SRAMFS-a-direct-mapped-SRAM-pages-into-user-space/20191005-023038
config: i386-tinyconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   mm/memory.c: In function 'zap_pte_range':
>> mm/memory.c:1027:8: error: used union type value where scalar is required
       if (ptent)
           ^~~~~
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/smp.h:12,
                    from include/linux/kernel_stat.h:5,
                    from mm/memory.c:42:
>> include/linux/kern_levels.h:5:18: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'pte_t {aka union <anonymous>}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:311:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
>> mm/memory.c:1028:5: note: in expansion of macro 'pr_info'
        pr_info("MM: pte not valid pte=%x\n", ptent);
        ^~~~~~~
   mm/memory.c:1028:37: note: format string is defined here
        pr_info("MM: pte not valid pte=%x\n", ptent);
                                       ~^

vim +1027 mm/memory.c

  1003	
  1004	static unsigned long zap_pte_range(struct mmu_gather *tlb,
  1005					struct vm_area_struct *vma, pmd_t *pmd,
  1006					unsigned long addr, unsigned long end,
  1007					struct zap_details *details)
  1008	{
  1009		struct mm_struct *mm = tlb->mm;
  1010		int force_flush = 0;
  1011		int rss[NR_MM_COUNTERS];
  1012		spinlock_t *ptl;
  1013		pte_t *start_pte;
  1014		pte_t *pte;
  1015		swp_entry_t entry;
  1016	
  1017		tlb_change_page_size(tlb, PAGE_SIZE);
  1018	again:
  1019		init_rss_vec(rss);
  1020		start_pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
  1021		pte = start_pte;
  1022		flush_tlb_batched_pending(mm);
  1023		arch_enter_lazy_mmu_mode();
  1024		do {
  1025			pte_t ptent = *pte;
  1026			if (pte_none(ptent)) {
> 1027				if (ptent)
> 1028					pr_info("MM: pte not valid pte=%x\n", ptent);
  1029				continue;
  1030			}
  1031	
  1032			if (pte_present(ptent)) {
  1033				struct page *page;
  1034	
  1035				page = vm_normal_page(vma, addr, ptent);
  1036				if (unlikely(details) && page) {
  1037					/*
  1038					 * unmap_shared_mapping_pages() wants to
  1039					 * invalidate cache without truncating:
  1040					 * unmap shared but keep private pages.
  1041					 */
  1042					if (details->check_mapping &&
  1043					    details->check_mapping != page_rmapping(page))
  1044						continue;
  1045				}
  1046				ptent = ptep_get_and_clear_full(mm, addr, pte,
  1047								tlb->fullmm);
  1048				tlb_remove_tlb_entry(tlb, pte, addr);
  1049				if (unlikely(!page))
  1050					continue;
  1051	
  1052				if (!PageAnon(page)) {
  1053					if (pte_dirty(ptent)) {
  1054						force_flush = 1;
  1055						set_page_dirty(page);
  1056					}
  1057					if (pte_young(ptent) &&
  1058					    likely(!(vma->vm_flags & VM_SEQ_READ)))
  1059						mark_page_accessed(page);
  1060				}
  1061				rss[mm_counter(page)]--;
  1062				page_remove_rmap(page, false);
  1063				if (unlikely(page_mapcount(page) < 0))
  1064					print_bad_pte(vma, addr, ptent, page);
  1065				if (unlikely(__tlb_remove_page(tlb, page))) {
  1066					force_flush = 1;
  1067					addr += PAGE_SIZE;
  1068					break;
  1069				}
  1070				continue;
  1071			}
  1072	
  1073			entry = pte_to_swp_entry(ptent);
  1074			if (non_swap_entry(entry) && is_device_private_entry(entry)) {
  1075				struct page *page = device_private_entry_to_page(entry);
  1076	
  1077				if (unlikely(details && details->check_mapping)) {
  1078					/*
  1079					 * unmap_shared_mapping_pages() wants to
  1080					 * invalidate cache without truncating:
  1081					 * unmap shared but keep private pages.
  1082					 */
  1083					if (details->check_mapping !=
  1084					    page_rmapping(page))
  1085						continue;
  1086				}
  1087	
  1088				pte_clear_not_present_full(mm, addr, pte, tlb->fullmm);
  1089				rss[mm_counter(page)]--;
  1090				page_remove_rmap(page, false);
  1091				put_page(page);
  1092				continue;
  1093			}
  1094	
  1095			/* If details->check_mapping, we leave swap entries. */
  1096			if (unlikely(details))
  1097				continue;
  1098	
  1099			entry = pte_to_swp_entry(ptent);
  1100			if (!non_swap_entry(entry))
  1101				rss[MM_SWAPENTS]--;
  1102			else if (is_migration_entry(entry)) {
  1103				struct page *page;
  1104	
  1105				page = migration_entry_to_page(entry);
  1106				rss[mm_counter(page)]--;
  1107			}
  1108			if (unlikely(!free_swap_and_cache(entry)))
  1109				print_bad_pte(vma, addr, ptent, NULL);
  1110			pte_clear_not_present_full(mm, addr, pte, tlb->fullmm);
  1111		} while (pte++, addr += PAGE_SIZE, addr != end);
  1112	
  1113		add_mm_rss_vec(mm, rss);
  1114		arch_leave_lazy_mmu_mode();
  1115	
  1116		/* Do the actual TLB flush before dropping ptl */
  1117		if (force_flush)
  1118			tlb_flush_mmu_tlbonly(tlb);
  1119		pte_unmap_unlock(start_pte, ptl);
  1120	
  1121		/*
  1122		 * If we forced a TLB flush (either due to running out of
  1123		 * batch buffers or because we needed to flush dirty TLB
  1124		 * entries before releasing the ptl), free the batched
  1125		 * memory too. Restart if we didn't do everything.
  1126		 */
  1127		if (force_flush) {
  1128			force_flush = 0;
  1129			tlb_flush_mmu(tlb);
  1130			if (addr != end)
  1131				goto again;
  1132		}
  1133	
  1134		return addr;
  1135	}
  1136	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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

  reply	other threads:[~2019-10-04 18:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20191004133905eucas1p1f002c9e76ceaef205b48e941707af726@eucas1p1.samsung.com>
2019-10-04 13:38 ` [RFC 0/2] SRAMFS a direct mapped SRAM pages into user space Lukasz Luba
2019-10-04 13:38   ` [RFC 1/2] DT: ARM: exynos: change SRAM device node Lukasz Luba
2019-10-04 13:38   ` [RFC 2/2] dirvers & fs: add sram driver and sramfs Lukasz Luba
2019-10-04 18:58     ` kbuild test robot [this message]
2019-10-04 19:59     ` kbuild test robot
2019-10-05 20:31     ` [RFC PATCH] dirvers & fs: sramfs_file_ops can be static kbuild test robot

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=201910050217.S5macP5D%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /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.