Thread (92 messages) flat view 92 messages, 6 authors, 2017-07-13

Re: [RFC v5 34/38] procfs: display the protection-key number associated with a vma

From: Ram Pai <hidden>
Date: 2017-07-13 17:04:25
Also in: linux-arch, linux-mm, lkml

On Thu, Jul 13, 2017 at 07:07:48AM -0700, Dave Hansen wrote:
On 07/13/2017 01:03 AM, Ram Pai wrote:
quoted
On Tue, Jul 11, 2017 at 11:13:56AM -0700, Dave Hansen wrote:
quoted
On 07/05/2017 02:22 PM, Ram Pai wrote:
quoted
+#ifdef CONFIG_PPC64_MEMORY_PROTECTION_KEYS
+void arch_show_smap(struct seq_file *m, struct vm_area_struct *vma)
+{
+	seq_printf(m, "ProtectionKey:  %8u\n", vma_pkey(vma));
+}
+#endif /* CONFIG_PPC64_MEMORY_PROTECTION_KEYS */
This seems like kinda silly unnecessary duplication.  Could we just put
this in the fs/proc/ code and #ifdef it on ARCH_HAS_PKEYS?
Well x86 predicates it based on availability of X86_FEATURE_OSPKE.

powerpc doesn't need that check or any similar check. So trying to
generalize the code does not save much IMHO.
I know all your hardware doesn't support it. :)
Wow! you bring a good point which I had not considered yet. I need some
runtime checks for RPT.

But regardless, my above statement is still partially true. x86
predicates it based on availability of X86_FEATURE_OSPKE, and powerpc
should predicate it based on HPT. So we have our own
customized checks. Hence a unified function won't suffice.
So, for instance, if you are running on a new POWER9 with radix page
tables, you will just always output "ProtectionKey: 0" in every VMA,
regardless?
quoted
maybe have a seperate inline function that does
seq_printf(m, "ProtectionKey:  %8u\n", vma_pkey(vma));
and is called from x86 and powerpc's arch_show_smap()?
At least will keep the string format captured in 
one single place.
Now that we have two architectures, is there a strong reason we can't
just have an arch_pkeys_enabled(), and stick the seq_printf() back in
generic code?
correct. that looks like the correct approach. Was trying to avoid
touching arch neutral code. But this approach will force me
do so. Will do.

-- 
Ram Pai
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help