[1/3] page-read: Deprecate ancient pages images

Submitted by Pavel Emelianov on June 16, 2016, 2:49 p.m.

Details

Message ID 5762BC93.3080707@virtuozzo.com
State Accepted
Series "Deprecation set"
Commit 520d00f79e9feba8aecfbc89fb173bf1eea2d697
Headers show

Commit Message

Pavel Emelianov June 16, 2016, 2:49 p.m.
These are raw vaddr:page pairs, criu stopped generating this long before 1.0,
nobody uses it now.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
---
 criu/page-read.c | 56 ++------------------------------------------------------
 1 file changed, 2 insertions(+), 54 deletions(-)

Patch hide | download patch | download mbox

diff --git a/criu/page-read.c b/criu/page-read.c
index f06b11f..9a02a5d 100644
--- a/criu/page-read.c
+++ b/criu/page-read.c
@@ -15,36 +15,6 @@ 
 #define SEEK_HOLE	4
 #endif
 
-static int get_page_vaddr(struct page_read *pr, struct iovec *iov)
-{
-	int ret;
-	u64 img_va;
-
-	ret = read_img_eof(pr->pmi, &img_va);
-	if (ret <= 0)
-		return ret;
-
-	iov->iov_base = (void *)decode_pointer(img_va);
-	iov->iov_len = PAGE_SIZE;
-
-	return 1;
-}
-
-static int read_page(struct page_read *pr, unsigned long vaddr, int nr, void *buf)
-{
-	int ret;
-
-	BUG_ON(nr != 1);
-
-	ret = read(img_raw_fd(pr->pmi), buf, PAGE_SIZE);
-	if (ret != PAGE_SIZE) {
-		pr_err("Can't read mapping page %d\n", ret);
-		return -1;
-	}
-
-	return 1;
-}
-
 void pagemap2iovec(PagemapEntry *pe, struct iovec *iov)
 {
 	iov->iov_base = decode_pointer(pe->vaddr);
@@ -342,7 +312,7 @@  free_pagemaps:
 
 int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
 {
-	int flags, i_typ, i_typ_o;
+	int flags, i_typ;
 	static unsigned ids = 1;
 
 	if (opts.auto_dedup)
@@ -355,11 +325,9 @@  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
 	switch (pr_flags & PR_TYPE_MASK) {
 	case PR_TASK:
 		i_typ = CR_FD_PAGEMAP;
-		i_typ_o = CR_FD_PAGES_OLD;
 		break;
 	case PR_SHMEM:
 		i_typ = CR_FD_SHMEM_PAGEMAP;
-		i_typ_o = CR_FD_SHM_PAGES_OLD;
 		break;
 	default:
 		BUG();
@@ -377,7 +345,7 @@  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
 
 	if (empty_image(pr->pmi)) {
 		close_image(pr->pmi);
-		goto open_old;
+		return 0;
 	}
 
 	if ((i_typ != CR_FD_SHMEM_PAGEMAP) && try_open_parent(dfd, pid, pr, pr_flags)) {
@@ -408,26 +376,6 @@  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
 			pr->id, pr->parent ? pr->parent->id : 0);
 
 	return 1;
-
-open_old:
-	pr->pmi = open_image_at(dfd, i_typ_o, flags, pid);
-	if (!pr->pmi)
-		return -1;
-
-	if (empty_image(pr->pmi)) {
-		close_image(pr->pmi);
-		return 0;
-	}
-
-	pr->get_pagemap = get_page_vaddr;
-	pr->put_pagemap = NULL;
-	pr->read_pages = read_page;
-	pr->pi = NULL;
-	pr->close = close_page_read;
-	pr->skip_pages = NULL;
-	pr->seek_page = NULL;
-
-	return 1;
 }
 
 int open_page_read(int pid, struct page_read *pr, int pr_flags)

Comments

Mike Rapoport June 16, 2016, 4:52 p.m.
On Thu, Jun 16, 2016 at 5:49 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
> These are raw vaddr:page pairs, criu stopped generating this long before 1.0,
> nobody uses it now.

What about merging most of cr-dedup into page-read.c and 'mv
page-read.c page-rdwr.c'? ;-)

> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
> ---
>  criu/page-read.c | 56 ++------------------------------------------------------
>  1 file changed, 2 insertions(+), 54 deletions(-)
>
> diff --git a/criu/page-read.c b/criu/page-read.c
> index f06b11f..9a02a5d 100644
> --- a/criu/page-read.c
> +++ b/criu/page-read.c
> @@ -15,36 +15,6 @@
>  #define SEEK_HOLE      4
>  #endif
>
> -static int get_page_vaddr(struct page_read *pr, struct iovec *iov)
> -{
> -       int ret;
> -       u64 img_va;
> -
> -       ret = read_img_eof(pr->pmi, &img_va);
> -       if (ret <= 0)
> -               return ret;
> -
> -       iov->iov_base = (void *)decode_pointer(img_va);
> -       iov->iov_len = PAGE_SIZE;
> -
> -       return 1;
> -}
> -
> -static int read_page(struct page_read *pr, unsigned long vaddr, int nr, void *buf)
> -{
> -       int ret;
> -
> -       BUG_ON(nr != 1);
> -
> -       ret = read(img_raw_fd(pr->pmi), buf, PAGE_SIZE);
> -       if (ret != PAGE_SIZE) {
> -               pr_err("Can't read mapping page %d\n", ret);
> -               return -1;
> -       }
> -
> -       return 1;
> -}
> -
>  void pagemap2iovec(PagemapEntry *pe, struct iovec *iov)
>  {
>         iov->iov_base = decode_pointer(pe->vaddr);
> @@ -342,7 +312,7 @@ free_pagemaps:
>
>  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>  {
> -       int flags, i_typ, i_typ_o;
> +       int flags, i_typ;
>         static unsigned ids = 1;
>
>         if (opts.auto_dedup)
> @@ -355,11 +325,9 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>         switch (pr_flags & PR_TYPE_MASK) {
>         case PR_TASK:
>                 i_typ = CR_FD_PAGEMAP;
> -               i_typ_o = CR_FD_PAGES_OLD;
>                 break;
>         case PR_SHMEM:
>                 i_typ = CR_FD_SHMEM_PAGEMAP;
> -               i_typ_o = CR_FD_SHM_PAGES_OLD;
>                 break;
>         default:
>                 BUG();
> @@ -377,7 +345,7 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>
>         if (empty_image(pr->pmi)) {
>                 close_image(pr->pmi);
> -               goto open_old;
> +               return 0;
>         }
>
>         if ((i_typ != CR_FD_SHMEM_PAGEMAP) && try_open_parent(dfd, pid, pr, pr_flags)) {
> @@ -408,26 +376,6 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>                         pr->id, pr->parent ? pr->parent->id : 0);
>
>         return 1;
> -
> -open_old:
> -       pr->pmi = open_image_at(dfd, i_typ_o, flags, pid);
> -       if (!pr->pmi)
> -               return -1;
> -
> -       if (empty_image(pr->pmi)) {
> -               close_image(pr->pmi);
> -               return 0;
> -       }
> -
> -       pr->get_pagemap = get_page_vaddr;
> -       pr->put_pagemap = NULL;
> -       pr->read_pages = read_page;
> -       pr->pi = NULL;
> -       pr->close = close_page_read;
> -       pr->skip_pages = NULL;
> -       pr->seek_page = NULL;
> -
> -       return 1;
>  }
>
>  int open_page_read(int pid, struct page_read *pr, int pr_flags)
> --
> 2.5.0
>
> _______________________________________________
> CRIU mailing list
> CRIU@openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
Pavel Emelianov June 17, 2016, 10:35 a.m.
On 06/16/2016 07:52 PM, Mike Rapoport wrote:
> On Thu, Jun 16, 2016 at 5:49 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
>> These are raw vaddr:page pairs, criu stopped generating this long before 1.0,
>> nobody uses it now.
> 
> What about merging most of cr-dedup into page-read.c and 'mv
> page-read.c page-rdwr.c'? ;-)

Hm... mv page-read.c pagemap.c maybe?
I think it's nice idea. Will you cook the patches or me cook the patches ;) ?

>> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
>> ---
>>  criu/page-read.c | 56 ++------------------------------------------------------
>>  1 file changed, 2 insertions(+), 54 deletions(-)
>>
>> diff --git a/criu/page-read.c b/criu/page-read.c
>> index f06b11f..9a02a5d 100644
>> --- a/criu/page-read.c
>> +++ b/criu/page-read.c
>> @@ -15,36 +15,6 @@
>>  #define SEEK_HOLE      4
>>  #endif
>>
>> -static int get_page_vaddr(struct page_read *pr, struct iovec *iov)
>> -{
>> -       int ret;
>> -       u64 img_va;
>> -
>> -       ret = read_img_eof(pr->pmi, &img_va);
>> -       if (ret <= 0)
>> -               return ret;
>> -
>> -       iov->iov_base = (void *)decode_pointer(img_va);
>> -       iov->iov_len = PAGE_SIZE;
>> -
>> -       return 1;
>> -}
>> -
>> -static int read_page(struct page_read *pr, unsigned long vaddr, int nr, void *buf)
>> -{
>> -       int ret;
>> -
>> -       BUG_ON(nr != 1);
>> -
>> -       ret = read(img_raw_fd(pr->pmi), buf, PAGE_SIZE);
>> -       if (ret != PAGE_SIZE) {
>> -               pr_err("Can't read mapping page %d\n", ret);
>> -               return -1;
>> -       }
>> -
>> -       return 1;
>> -}
>> -
>>  void pagemap2iovec(PagemapEntry *pe, struct iovec *iov)
>>  {
>>         iov->iov_base = decode_pointer(pe->vaddr);
>> @@ -342,7 +312,7 @@ free_pagemaps:
>>
>>  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>  {
>> -       int flags, i_typ, i_typ_o;
>> +       int flags, i_typ;
>>         static unsigned ids = 1;
>>
>>         if (opts.auto_dedup)
>> @@ -355,11 +325,9 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>         switch (pr_flags & PR_TYPE_MASK) {
>>         case PR_TASK:
>>                 i_typ = CR_FD_PAGEMAP;
>> -               i_typ_o = CR_FD_PAGES_OLD;
>>                 break;
>>         case PR_SHMEM:
>>                 i_typ = CR_FD_SHMEM_PAGEMAP;
>> -               i_typ_o = CR_FD_SHM_PAGES_OLD;
>>                 break;
>>         default:
>>                 BUG();
>> @@ -377,7 +345,7 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>
>>         if (empty_image(pr->pmi)) {
>>                 close_image(pr->pmi);
>> -               goto open_old;
>> +               return 0;
>>         }
>>
>>         if ((i_typ != CR_FD_SHMEM_PAGEMAP) && try_open_parent(dfd, pid, pr, pr_flags)) {
>> @@ -408,26 +376,6 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>                         pr->id, pr->parent ? pr->parent->id : 0);
>>
>>         return 1;
>> -
>> -open_old:
>> -       pr->pmi = open_image_at(dfd, i_typ_o, flags, pid);
>> -       if (!pr->pmi)
>> -               return -1;
>> -
>> -       if (empty_image(pr->pmi)) {
>> -               close_image(pr->pmi);
>> -               return 0;
>> -       }
>> -
>> -       pr->get_pagemap = get_page_vaddr;
>> -       pr->put_pagemap = NULL;
>> -       pr->read_pages = read_page;
>> -       pr->pi = NULL;
>> -       pr->close = close_page_read;
>> -       pr->skip_pages = NULL;
>> -       pr->seek_page = NULL;
>> -
>> -       return 1;
>>  }
>>
>>  int open_page_read(int pid, struct page_read *pr, int pr_flags)
>> --
>> 2.5.0
>>
>> _______________________________________________
>> CRIU mailing list
>> CRIU@openvz.org
>> https://lists.openvz.org/mailman/listinfo/criu
> 
> 
>
Mike Rapoport June 19, 2016, 6:05 a.m.
On Fri, Jun 17, 2016 at 1:35 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
> On 06/16/2016 07:52 PM, Mike Rapoport wrote:
>> On Thu, Jun 16, 2016 at 5:49 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
>>> These are raw vaddr:page pairs, criu stopped generating this long before 1.0,
>>> nobody uses it now.
>>
>> What about merging most of cr-dedup into page-read.c and 'mv
>> page-read.c page-rdwr.c'? ;-)
>
> Hm... mv page-read.c pagemap.c maybe?
> I think it's nice idea. Will you cook the patches or me cook the patches ;) ?

I'll cook :)
Do you want also 's/struct page_read/struct pagemap/'?

>>> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
>>> ---
>>>  criu/page-read.c | 56 ++------------------------------------------------------
>>>  1 file changed, 2 insertions(+), 54 deletions(-)
>>>
>>> diff --git a/criu/page-read.c b/criu/page-read.c
>>> index f06b11f..9a02a5d 100644
>>> --- a/criu/page-read.c
>>> +++ b/criu/page-read.c
>>> @@ -15,36 +15,6 @@
>>>  #define SEEK_HOLE      4
>>>  #endif
>>>
>>> -static int get_page_vaddr(struct page_read *pr, struct iovec *iov)
>>> -{
>>> -       int ret;
>>> -       u64 img_va;
>>> -
>>> -       ret = read_img_eof(pr->pmi, &img_va);
>>> -       if (ret <= 0)
>>> -               return ret;
>>> -
>>> -       iov->iov_base = (void *)decode_pointer(img_va);
>>> -       iov->iov_len = PAGE_SIZE;
>>> -
>>> -       return 1;
>>> -}
>>> -
>>> -static int read_page(struct page_read *pr, unsigned long vaddr, int nr, void *buf)
>>> -{
>>> -       int ret;
>>> -
>>> -       BUG_ON(nr != 1);
>>> -
>>> -       ret = read(img_raw_fd(pr->pmi), buf, PAGE_SIZE);
>>> -       if (ret != PAGE_SIZE) {
>>> -               pr_err("Can't read mapping page %d\n", ret);
>>> -               return -1;
>>> -       }
>>> -
>>> -       return 1;
>>> -}
>>> -
>>>  void pagemap2iovec(PagemapEntry *pe, struct iovec *iov)
>>>  {
>>>         iov->iov_base = decode_pointer(pe->vaddr);
>>> @@ -342,7 +312,7 @@ free_pagemaps:
>>>
>>>  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>  {
>>> -       int flags, i_typ, i_typ_o;
>>> +       int flags, i_typ;
>>>         static unsigned ids = 1;
>>>
>>>         if (opts.auto_dedup)
>>> @@ -355,11 +325,9 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>         switch (pr_flags & PR_TYPE_MASK) {
>>>         case PR_TASK:
>>>                 i_typ = CR_FD_PAGEMAP;
>>> -               i_typ_o = CR_FD_PAGES_OLD;
>>>                 break;
>>>         case PR_SHMEM:
>>>                 i_typ = CR_FD_SHMEM_PAGEMAP;
>>> -               i_typ_o = CR_FD_SHM_PAGES_OLD;
>>>                 break;
>>>         default:
>>>                 BUG();
>>> @@ -377,7 +345,7 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>
>>>         if (empty_image(pr->pmi)) {
>>>                 close_image(pr->pmi);
>>> -               goto open_old;
>>> +               return 0;
>>>         }
>>>
>>>         if ((i_typ != CR_FD_SHMEM_PAGEMAP) && try_open_parent(dfd, pid, pr, pr_flags)) {
>>> @@ -408,26 +376,6 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>                         pr->id, pr->parent ? pr->parent->id : 0);
>>>
>>>         return 1;
>>> -
>>> -open_old:
>>> -       pr->pmi = open_image_at(dfd, i_typ_o, flags, pid);
>>> -       if (!pr->pmi)
>>> -               return -1;
>>> -
>>> -       if (empty_image(pr->pmi)) {
>>> -               close_image(pr->pmi);
>>> -               return 0;
>>> -       }
>>> -
>>> -       pr->get_pagemap = get_page_vaddr;
>>> -       pr->put_pagemap = NULL;
>>> -       pr->read_pages = read_page;
>>> -       pr->pi = NULL;
>>> -       pr->close = close_page_read;
>>> -       pr->skip_pages = NULL;
>>> -       pr->seek_page = NULL;
>>> -
>>> -       return 1;
>>>  }
>>>
>>>  int open_page_read(int pid, struct page_read *pr, int pr_flags)
>>> --
>>> 2.5.0
>>>
>>> _______________________________________________
>>> CRIU mailing list
>>> CRIU@openvz.org
>>> https://lists.openvz.org/mailman/listinfo/criu
>>
>>
>>
>
Pavel Emelianov June 20, 2016, 1:22 p.m.
On 06/19/2016 09:05 AM, Mike Rapoport wrote:
> On Fri, Jun 17, 2016 at 1:35 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
>> On 06/16/2016 07:52 PM, Mike Rapoport wrote:
>>> On Thu, Jun 16, 2016 at 5:49 PM, Pavel Emelyanov <xemul@virtuozzo.com> wrote:
>>>> These are raw vaddr:page pairs, criu stopped generating this long before 1.0,
>>>> nobody uses it now.
>>>
>>> What about merging most of cr-dedup into page-read.c and 'mv
>>> page-read.c page-rdwr.c'? ;-)
>>
>> Hm... mv page-read.c pagemap.c maybe?
>> I think it's nice idea. Will you cook the patches or me cook the patches ;) ?
> 
> I'll cook :)

Thanks!

> Do you want also 's/struct page_read/struct pagemap/'?

Not sure. The pagemap is an object, also we have page_xfer for writing pages...

--- Pavel

>>>> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
>>>> ---
>>>>  criu/page-read.c | 56 ++------------------------------------------------------
>>>>  1 file changed, 2 insertions(+), 54 deletions(-)
>>>>
>>>> diff --git a/criu/page-read.c b/criu/page-read.c
>>>> index f06b11f..9a02a5d 100644
>>>> --- a/criu/page-read.c
>>>> +++ b/criu/page-read.c
>>>> @@ -15,36 +15,6 @@
>>>>  #define SEEK_HOLE      4
>>>>  #endif
>>>>
>>>> -static int get_page_vaddr(struct page_read *pr, struct iovec *iov)
>>>> -{
>>>> -       int ret;
>>>> -       u64 img_va;
>>>> -
>>>> -       ret = read_img_eof(pr->pmi, &img_va);
>>>> -       if (ret <= 0)
>>>> -               return ret;
>>>> -
>>>> -       iov->iov_base = (void *)decode_pointer(img_va);
>>>> -       iov->iov_len = PAGE_SIZE;
>>>> -
>>>> -       return 1;
>>>> -}
>>>> -
>>>> -static int read_page(struct page_read *pr, unsigned long vaddr, int nr, void *buf)
>>>> -{
>>>> -       int ret;
>>>> -
>>>> -       BUG_ON(nr != 1);
>>>> -
>>>> -       ret = read(img_raw_fd(pr->pmi), buf, PAGE_SIZE);
>>>> -       if (ret != PAGE_SIZE) {
>>>> -               pr_err("Can't read mapping page %d\n", ret);
>>>> -               return -1;
>>>> -       }
>>>> -
>>>> -       return 1;
>>>> -}
>>>> -
>>>>  void pagemap2iovec(PagemapEntry *pe, struct iovec *iov)
>>>>  {
>>>>         iov->iov_base = decode_pointer(pe->vaddr);
>>>> @@ -342,7 +312,7 @@ free_pagemaps:
>>>>
>>>>  int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>>  {
>>>> -       int flags, i_typ, i_typ_o;
>>>> +       int flags, i_typ;
>>>>         static unsigned ids = 1;
>>>>
>>>>         if (opts.auto_dedup)
>>>> @@ -355,11 +325,9 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>>         switch (pr_flags & PR_TYPE_MASK) {
>>>>         case PR_TASK:
>>>>                 i_typ = CR_FD_PAGEMAP;
>>>> -               i_typ_o = CR_FD_PAGES_OLD;
>>>>                 break;
>>>>         case PR_SHMEM:
>>>>                 i_typ = CR_FD_SHMEM_PAGEMAP;
>>>> -               i_typ_o = CR_FD_SHM_PAGES_OLD;
>>>>                 break;
>>>>         default:
>>>>                 BUG();
>>>> @@ -377,7 +345,7 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>>
>>>>         if (empty_image(pr->pmi)) {
>>>>                 close_image(pr->pmi);
>>>> -               goto open_old;
>>>> +               return 0;
>>>>         }
>>>>
>>>>         if ((i_typ != CR_FD_SHMEM_PAGEMAP) && try_open_parent(dfd, pid, pr, pr_flags)) {
>>>> @@ -408,26 +376,6 @@ int open_page_read_at(int dfd, int pid, struct page_read *pr, int pr_flags)
>>>>                         pr->id, pr->parent ? pr->parent->id : 0);
>>>>
>>>>         return 1;
>>>> -
>>>> -open_old:
>>>> -       pr->pmi = open_image_at(dfd, i_typ_o, flags, pid);
>>>> -       if (!pr->pmi)
>>>> -               return -1;
>>>> -
>>>> -       if (empty_image(pr->pmi)) {
>>>> -               close_image(pr->pmi);
>>>> -               return 0;
>>>> -       }
>>>> -
>>>> -       pr->get_pagemap = get_page_vaddr;
>>>> -       pr->put_pagemap = NULL;
>>>> -       pr->read_pages = read_page;
>>>> -       pr->pi = NULL;
>>>> -       pr->close = close_page_read;
>>>> -       pr->skip_pages = NULL;
>>>> -       pr->seek_page = NULL;
>>>> -
>>>> -       return 1;
>>>>  }
>>>>
>>>>  int open_page_read(int pid, struct page_read *pr, int pr_flags)
>>>> --
>>>> 2.5.0
>>>>
>>>> _______________________________________________
>>>> CRIU mailing list
>>>> CRIU@openvz.org
>>>> https://lists.openvz.org/mailman/listinfo/criu
>>>
>>>
>>>
>>
> 
> 
>