Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- + printk("ipi_bitmap before = %llx, min = %d, max = %d\n", ipi_bitmap, min, max);
- + for_each_cpu(cpu, mask) {
- + apic_id = per_cpu(x86_cpu_to_apicid, cpu);
- + printk("apic id = %d\n", apic_id);
- + if (!ipi_bitmap) {
- + min = max = apic_id;
- + printk("!ipibitmap\n");
- + } else if (apic_id < min && max - apic_id < cluster_size) {
- + ipi_bitmap <<= min - apic_id;
- + min = apic_id;
- + printk("apic_id < min\n");
- + } else if (apic_id < min + cluster_size) {
- + max = apic_id < max ? max : apic_id;
- + printk("apic id < min + cluster");
- + } else {
- + ret = kvm_hypercall3(KVM_HC_SEND_IPI, (unsigned long)&ipi_bitmap, min, icr);
- + min = max = apic_id;
- + ipi_bitmap = 0;
- + printk("hmm\n");
- + }
- + __set_bit(apic_id - min, (unsigned long *)&ipi_bitmap);
- + printk("set = %d, ipi_bitmap = %llx\n", apic_id - min, ipi_bitmap);
- +
- + }
- + printk("ipi_bitmap after = %llx, min = %d, max = %d\n", ipi_bitmap, min, max);
- +
- + if (ipi_bitmap) {
- + ret = kvm_hypercall3(KVM_HC_SEND_IPI, (unsigned long)&ipi_bitmap, min, icr);
- + }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement