Commit d36480ed authored by Pavel Emelyanov's avatar Pavel Emelyanov

mem: Raise the page images IDs base for page server

Currently shmem generates page images in parallel
with page server and IDs may intersect. Fix this by
making page server create larger IDs.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 36b96d1e
......@@ -324,6 +324,20 @@ void close_image_dir(void)
static unsigned long page_ids = 1;
void up_page_ids_base(void)
{
/*
* When page server and crtools dump work on
* the same dir, the shmem pagemaps and regular
* pagemaps may have IDs conflicts. Fix this by
* making page server produce page images with
* higher IDs.
*/
BUG_ON(page_ids != 1);
page_ids += 0x10000;
}
int open_pages_image(unsigned long flags, int pm_fd)
{
unsigned id;
......
......@@ -182,6 +182,7 @@ extern void close_image_dir(void);
int open_image(int type, unsigned long flags, ...);
#define open_image_ro(type, ...) open_image(type, O_RDONLY, ##__VA_ARGS__)
int open_pages_image(unsigned long flags, int pm_fd);
void up_page_ids_base(void);
#define LAST_PID_PATH "/proc/sys/kernel/ns_last_pid"
#define LAST_PID_PERM 0666
......
......@@ -150,6 +150,8 @@ int cr_page_server(void)
struct sockaddr_in caddr;
socklen_t clen = sizeof(caddr);
up_page_ids_base();
pr_info("Starting page server on port %u\n",
(int)ntohs(opts.ps_addr.sin_port));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment