Two changes:
Remove more (redundant) map timestamp increments from properly synchronized routines. (Changed: vm_map_entry_link, vm_map_entry_unlink, and vm_map_pageable.) Micro-optimize vm_map_entry_link and vm_map_entry_unlink, eliminating unnecessary dereferences. At the same time, converted them from macros to inline functions.
This commit is contained in:
parent
8abc4f6dad
commit
99c81ca94d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=44928
@ -61,7 +61,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* rights to redistribute these changes.
|
||||
*
|
||||
* $Id: vm_map.c,v 1.156 1999/03/09 08:00:17 alc Exp $
|
||||
* $Id: vm_map.c,v 1.157 1999/03/15 06:24:52 alc Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -318,22 +318,29 @@ vm_map_entry_create(map)
|
||||
*
|
||||
* Insert/remove entries from maps.
|
||||
*/
|
||||
#define vm_map_entry_link(map, after_where, entry) \
|
||||
{ \
|
||||
(map)->nentries++; \
|
||||
(map)->timestamp++; \
|
||||
(entry)->prev = (after_where); \
|
||||
(entry)->next = (after_where)->next; \
|
||||
(entry)->prev->next = (entry); \
|
||||
(entry)->next->prev = (entry); \
|
||||
}
|
||||
#define vm_map_entry_unlink(map, entry) \
|
||||
{ \
|
||||
(map)->nentries--; \
|
||||
(map)->timestamp++; \
|
||||
(entry)->next->prev = (entry)->prev; \
|
||||
(entry)->prev->next = (entry)->next; \
|
||||
}
|
||||
static __inline void
|
||||
vm_map_entry_link(vm_map_t map,
|
||||
vm_map_entry_t after_where,
|
||||
vm_map_entry_t entry)
|
||||
{
|
||||
map->nentries++;
|
||||
entry->prev = after_where;
|
||||
entry->next = after_where->next;
|
||||
entry->next->prev = entry;
|
||||
after_where->next = entry;
|
||||
}
|
||||
|
||||
static __inline void
|
||||
vm_map_entry_unlink(vm_map_t map,
|
||||
vm_map_entry_t entry)
|
||||
{
|
||||
vm_map_entry_t prev = entry->prev;
|
||||
vm_map_entry_t next = entry->next;
|
||||
|
||||
next->prev = prev;
|
||||
prev->next = next;
|
||||
map->nentries--;
|
||||
}
|
||||
|
||||
/*
|
||||
* SAVE_HINT:
|
||||
@ -1679,7 +1686,6 @@ vm_map_pageable(map, start, end, new_pageable)
|
||||
entry->wired_count--;
|
||||
entry = entry->prev;
|
||||
}
|
||||
map->timestamp++;
|
||||
vm_map_unlock(map);
|
||||
return (KERN_INVALID_ARGUMENT);
|
||||
}
|
||||
@ -1748,7 +1754,6 @@ vm_map_pageable(map, start, end, new_pageable)
|
||||
|
||||
vm_map_unlock(map);
|
||||
|
||||
map->timestamp++;
|
||||
return (KERN_SUCCESS);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user