On 06/26/2010 02:25 AM, Alexander Graf wrote:
We will soon start and replace instructions from the text section with
other, paravirtualized versions. To ease the readability of those patches
I split out the generic looping and magic page mapping code out.

This patch still only contains stubs. But at least it loops through the
text section :).


+
+static void kvm_check_ins(u32 *inst)
+{
+       u32 _inst = *inst;
+       u32 inst_no_rt = _inst&  ~KVM_MASK_RT;
+       u32 inst_rt = _inst&  KVM_MASK_RT;
+
+       switch (inst_no_rt) {
+       }
+
+       switch (_inst) {
+       }
+
+       flush_icache_range((ulong)inst, (ulong)inst + 4);
+}

Shouldn't we flush only if we patched something?

+
+static void kvm_use_magic_page(void)
+{
+       u32 *p;
+       u32 *start, *end;
+
+       /* Tell the host to map the magic page to -4096 on all CPUs */
+
+       on_each_cpu(kvm_map_magic_page, NULL, 1);
+
+       /* Now loop through all code and find instructions */
+
+       start = (void*)_stext;
+       end = (void*)_etext;
+
+       for (p = start; p<  end; p++)
+               kvm_check_ins(p);
+}
+

Or, flush the entire thing here.


--
error compiling committee.c: too many arguments to function

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to