Revert "memory_range_lock: Enable interrupt when trylock fails"
This reverts commit 0d3ef65092.
Reason for revert: This fix causes circular dependency with memory_range manipulation and TLB flush. See #1394.
Change-Id: I4774e81ff300c199629e283e538c0a30ad0eeaae
This commit is contained in:
committed by
Ken Sato
parent
41d37bcd30
commit
edd3ea0103
@@ -174,7 +174,6 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
int err = -EIO;
|
||||
struct mckernel_procfs_buffer *buf_top = NULL;
|
||||
struct mckernel_procfs_buffer *buf_cur = NULL;
|
||||
unsigned long irqflags;
|
||||
|
||||
dprintf("process_procfs_request: invoked.\n");
|
||||
|
||||
@@ -420,7 +419,7 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
if (strcmp(p, "maps") == 0) {
|
||||
struct vm_range *range;
|
||||
|
||||
memory_range_read_lock(vm, &irqflags);
|
||||
ihk_mc_spinlock_lock_noirq(&vm->memory_range_lock);
|
||||
|
||||
range = lookup_process_memory_range(vm, 0, -1);
|
||||
while (range) {
|
||||
@@ -456,13 +455,13 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
|
||||
if (ans < 0 || ans > count ||
|
||||
buf_add(&buf_top, &buf_cur, buf, ans) < 0) {
|
||||
memory_range_read_unlock(vm, &irqflags);
|
||||
ihk_mc_spinlock_unlock_noirq(&vm->memory_range_lock);
|
||||
goto err;
|
||||
}
|
||||
range = next_process_memory_range(vm, range);
|
||||
}
|
||||
|
||||
memory_range_read_unlock(vm, &irqflags);
|
||||
ihk_mc_spinlock_unlock_noirq(&vm->memory_range_lock);
|
||||
|
||||
ans = 0;
|
||||
goto end;
|
||||
@@ -485,7 +484,7 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
start = (offset / sizeof(uint64_t)) << PAGE_SHIFT;
|
||||
end = start + ((count / sizeof(uint64_t)) << PAGE_SHIFT);
|
||||
|
||||
memory_range_read_lock(vm, &irqflags);
|
||||
ihk_mc_spinlock_lock_noirq(&vm->memory_range_lock);
|
||||
|
||||
while (start < end) {
|
||||
*_buf = ihk_mc_pt_virt_to_pagemap(proc->vm->address_space->page_table, start);
|
||||
@@ -495,7 +494,7 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
++_buf;
|
||||
}
|
||||
|
||||
memory_range_read_unlock(vm, &irqflags);
|
||||
ihk_mc_spinlock_unlock_noirq(&vm->memory_range_lock);
|
||||
|
||||
dprintf("/proc/pagemap: 0x%lx - 0x%lx, count: %d\n",
|
||||
start, end, count);
|
||||
@@ -527,14 +526,14 @@ int process_procfs_request(struct ikc_scd_packet *rpacket)
|
||||
goto err;
|
||||
}
|
||||
|
||||
memory_range_read_lock(proc->vm, &irqflags);
|
||||
ihk_mc_spinlock_lock_noirq(&proc->vm->memory_range_lock);
|
||||
range = lookup_process_memory_range(vm, 0, -1);
|
||||
while (range) {
|
||||
if(range->flag & VR_LOCKED)
|
||||
lockedsize += range->end - range->start;
|
||||
range = next_process_memory_range(vm, range);
|
||||
}
|
||||
memory_range_read_unlock(proc->vm, &irqflags);
|
||||
ihk_mc_spinlock_unlock_noirq(&proc->vm->memory_range_lock);
|
||||
|
||||
cpu_bitmask = &bitmasks[bitmasks_offset];
|
||||
bitmasks_offset += bitmap_scnprintf(cpu_bitmask,
|
||||
|
||||
Reference in New Issue
Block a user