From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4239638505192818695==" MIME-Version: 1.0 From: kbuild test robot 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 Message-ID: <201910050217.S5macP5D%lkp@intel.com> In-Reply-To: <20191004133855.17474-3-l.luba@partner.samsung.com> List-Id: --===============4239638505192818695== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 h= elp 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/37406= 982] url: https://github.com/0day-ci/linux/commits/Lukasz-Luba/SRAMFS-a-direc= t-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=3Di386 = If you fix the issue, kindly add following tag Reported-by: kbuild test robot 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 }' [-Wformat=3D] #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=3D%x\n", ptent); ^~~~~~~ mm/memory.c:1028:37: note: format string is defined here pr_info("MM: pte not valid pte=3D%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 =3D tlb->mm; 1010 int force_flush =3D 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 =3D pte_offset_map_lock(mm, pmd, addr, &ptl); 1021 pte =3D start_pte; 1022 flush_tlb_batched_pending(mm); 1023 arch_enter_lazy_mmu_mode(); 1024 do { 1025 pte_t ptent =3D *pte; 1026 if (pte_none(ptent)) { > 1027 if (ptent) > 1028 pr_info("MM: pte not valid pte=3D%x\n", ptent); 1029 continue; 1030 } 1031 = 1032 if (pte_present(ptent)) { 1033 struct page *page; 1034 = 1035 page =3D 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 !=3D page_rmapping(page)) 1044 continue; 1045 } 1046 ptent =3D 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 =3D 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 =3D 1; 1067 addr +=3D PAGE_SIZE; 1068 break; 1069 } 1070 continue; 1071 } 1072 = 1073 entry =3D pte_to_swp_entry(ptent); 1074 if (non_swap_entry(entry) && is_device_private_entry(entry)) { 1075 struct page *page =3D 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 !=3D 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 =3D 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 =3D 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 +=3D PAGE_SIZE, addr !=3D 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 =3D 0; 1129 tlb_flush_mmu(tlb); 1130 if (addr !=3D end) 1131 goto again; 1132 } 1133 = 1134 return addr; 1135 } 1136 = --- 0-DAY kernel test infrastructure Open Source Technology Cent= er https://lists.01.org/pipermail/kbuild-all Intel Corporati= on --===============4239638505192818695== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 mcO/ubKd0gdoAAA= --===============4239638505192818695==--