Tofu: initial version
Change-Id: I9c464d5af883c18715a97ca9e9981cf73b260f90
This commit is contained in:
committed by
Masamichi Takagi
parent
fe83deb3db
commit
92902d36fc
@@ -292,5 +292,38 @@ void ihk_mc_spinlock_lock(ihk_spinlock_t *, unsigned long *);
|
||||
void ihk_mc_spinlock_unlock(ihk_spinlock_t *, unsigned long *);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Linux queued_spin_lock compatible spin_lock, without the queue.
|
||||
*/
|
||||
#define _Q_LOCKED_OFFSET 0
|
||||
#define _Q_LOCKED_VAL (1U << _Q_LOCKED_OFFSET)
|
||||
|
||||
#define linux_spin_lock(lock) \
|
||||
do { \
|
||||
while (!__sync_bool_compare_and_swap( \
|
||||
(unsigned int *)lock, 0, \
|
||||
_Q_LOCKED_VAL)) { \
|
||||
cpu_pause(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define linux_spin_unlock(lock) \
|
||||
do { \
|
||||
smp_store_release(lock, 0); \
|
||||
} while (0)
|
||||
|
||||
#define linux_spin_lock_irqsave(lock, flags) \
|
||||
do { \
|
||||
flags = cpu_disable_interrupt_save(); \
|
||||
linux_spin_lock(lock); \
|
||||
} while (0)
|
||||
|
||||
#define linux_spin_unlock_irqrestore(lock, flags) \
|
||||
do { \
|
||||
linux_spin_unlock(lock); \
|
||||
cpu_restore_interrupt(flags); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -170,6 +170,7 @@ int ihk_mc_pt_change_page(page_table_t pt, void *virt,
|
||||
enum ihk_mc_pt_attribute);
|
||||
int ihk_mc_pt_clear_page(page_table_t pt, void *virt);
|
||||
int ihk_mc_pt_clear_large_page(page_table_t pt, void *virt);
|
||||
int ihk_mc_clear_kernel_range(void *start, void *end);
|
||||
int ihk_mc_pt_clear_range(page_table_t pt, struct process_vm *vm,
|
||||
void *start, void *end);
|
||||
int ihk_mc_pt_free_range(page_table_t pt, struct process_vm *vm,
|
||||
@@ -178,6 +179,8 @@ int ihk_mc_pt_change_attr_range(page_table_t pt, void *start, void *end,
|
||||
enum ihk_mc_pt_attribute clrattr,
|
||||
enum ihk_mc_pt_attribute setattr);
|
||||
pte_t *ihk_mc_pt_lookup_pte(page_table_t pt, void *virt, int pgshift, void **pgbasep, size_t *pgsizep, int *p2alignp);
|
||||
pte_t *ihk_mc_pt_lookup_fault_pte(struct process_vm *vm, void *virt,
|
||||
int pgshift, void **basep, size_t *sizep, int *p2alignp);
|
||||
int ihk_mc_pt_set_range(page_table_t pt, struct process_vm *vm, void *start,
|
||||
void *end, uintptr_t phys, enum ihk_mc_pt_attribute attr,
|
||||
int pgshift, struct vm_range *range, int overwrite);
|
||||
@@ -221,6 +224,9 @@ int ihk_mc_get_memory_chunk(int id,
|
||||
unsigned long *start,
|
||||
unsigned long *end,
|
||||
int *numa_id);
|
||||
int ihk_mc_get_memory_chunk_dma_addr(int id,
|
||||
int tni, int cqid,
|
||||
uintptr_t *dma_addr);
|
||||
|
||||
void remote_flush_tlb_cpumask(struct process_vm *vm,
|
||||
unsigned long addr, int cpu_id);
|
||||
|
||||
Reference in New Issue
Block a user