* [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION
@ 2015-06-25 8:22 Zhou Wenjian
2015-06-25 8:22 ` [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace Zhou Wenjian
2015-06-29 8:33 ` [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Atsushi Kumagai
0 siblings, 2 replies; 6+ messages in thread
From: Zhou Wenjian @ 2015-06-25 8:22 UTC (permalink / raw)
To: kexec
Currently, there is no obvious description in IMPLEMENTATION for
distinguishing the lost pages resulted by ENOSPACE errors or others.
So, it is added.
Signed-off-by: Zhou Wenjian <zhouwj-fnst@cn.fujitsu.com>
---
IMPLEMENTATION | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/IMPLEMENTATION b/IMPLEMENTATION
index 72df5d5..70a3f7c 100644
--- a/IMPLEMENTATION
+++ b/IMPLEMENTATION
@@ -240,6 +240,8 @@
The page header and page data are written in pairs. When writing page data
(pfn N+1), if ENOSPACE error happens, the page headers after N won't be
written either.
+ When reading page from incomplete core, only the page lost by ENOSPACE errors
+ has 0 in its corresponding page descriptor's member offset.
If there is no page data dumped into the DUMPFILE, the DUMPFILE can't be
analysed by crash.
--
1.7.1
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace
2015-06-25 8:22 [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Zhou Wenjian
@ 2015-06-25 8:22 ` Zhou Wenjian
2015-06-29 8:33 ` Atsushi Kumagai
2015-06-29 8:33 ` [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Atsushi Kumagai
1 sibling, 1 reply; 6+ messages in thread
From: Zhou Wenjian @ 2015-06-25 8:22 UTC (permalink / raw)
To: kexec
In current implementation, reserve_diskspace use the buffer as large as
the space that needs to be reserved. The space is reserved for PT_LOAD.
Theoretically the size of the whole PT_LOAD can be very large. So it's
necessary to make reserve_diskspace use a limited size of memory.
Signed-off-by: Zhou wenjian <zhouwj-fnst@cn.fujitsu.com>
---
makedumpfile.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/makedumpfile.c b/makedumpfile.c
index 88e3389..f7f1f77 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3801,7 +3801,8 @@ read_flat_data_header(struct makedumpfile_data_header *fdh)
int
reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
{
- size_t buf_size;
+ off_t off;
+ size_t buf_size, write_size;
char *buf = NULL;
int ret = FALSE;
@@ -3809,6 +3810,7 @@ reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
assert(start_offset < end_offset);
buf_size = end_offset - start_offset;
+ buf_size = MIN(info->page_size, buf_size);
if ((buf = malloc(buf_size)) == NULL) {
ERRMSG("Can't allocate memory for the size of reserved diskspace. %s\n",
strerror(errno));
@@ -3816,8 +3818,15 @@ reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
}
memset(buf, 0, buf_size);
- if (!write_buffer(fd, start_offset, buf, buf_size, file_name))
- goto out;
+ off = start_offset;
+
+ while (off < end_offset) {
+ write_size = MIN(buf_size, end_offset - off);
+ if (!write_buffer(fd, off, buf, write_size, file_name))
+ goto out;
+
+ off += write_size;
+ }
ret = TRUE;
out:
--
1.7.1
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION
2015-06-25 8:22 [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Zhou Wenjian
2015-06-25 8:22 ` [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace Zhou Wenjian
@ 2015-06-29 8:33 ` Atsushi Kumagai
2015-06-30 1:02 ` "Zhou, Wenjian/周文剑"
1 sibling, 1 reply; 6+ messages in thread
From: Atsushi Kumagai @ 2015-06-29 8:33 UTC (permalink / raw)
To: zhouwj-fnst@cn.fujitsu.com; +Cc: kexec@lists.infradead.org
Hello Zhou,
>Currently, there is no obvious description in IMPLEMENTATION for
>distinguishing the lost pages resulted by ENOSPACE errors or others.
>So, it is added.
>
>Signed-off-by: Zhou Wenjian <zhouwj-fnst@cn.fujitsu.com>
>---
> IMPLEMENTATION | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
>diff --git a/IMPLEMENTATION b/IMPLEMENTATION
>index 72df5d5..70a3f7c 100644
>--- a/IMPLEMENTATION
>+++ b/IMPLEMENTATION
>@@ -240,6 +240,8 @@
> The page header and page data are written in pairs. When writing page data
> (pfn N+1), if ENOSPACE error happens, the page headers after N won't be
> written either.
>+ When reading page from incomplete core, only the page lost by ENOSPACE errors
>+ has 0 in its corresponding page descriptor's member offset.
I'm not sure this is correct.
Could you point me where is the code which sets 0 to the page_desc->offset
of the lost page ?
Thanks
Atsushi Kumagai
> If there is no page data dumped into the DUMPFILE, the DUMPFILE can't be
> analysed by crash.
>--
>1.7.1
>
>
>_______________________________________________
>kexec mailing list
>kexec@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace
2015-06-25 8:22 ` [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace Zhou Wenjian
@ 2015-06-29 8:33 ` Atsushi Kumagai
0 siblings, 0 replies; 6+ messages in thread
From: Atsushi Kumagai @ 2015-06-29 8:33 UTC (permalink / raw)
To: zhouwj-fnst@cn.fujitsu.com; +Cc: kexec@lists.infradead.org
Hello Zhou,
>In current implementation, reserve_diskspace use the buffer as large as
>the space that needs to be reserved. The space is reserved for PT_LOAD.
>Theoretically the size of the whole PT_LOAD can be very large. So it's
>necessary to make reserve_diskspace use a limited size of memory.
>
>Signed-off-by: Zhou wenjian <zhouwj-fnst@cn.fujitsu.com>
Looks good to me, thanks.
I'll merge this into v1.5.9.
Thanks
Atsushi Kumagai
>---
> makedumpfile.c | 15 ++++++++++++---
> 1 files changed, 12 insertions(+), 3 deletions(-)
>
>diff --git a/makedumpfile.c b/makedumpfile.c
>index 88e3389..f7f1f77 100644
>--- a/makedumpfile.c
>+++ b/makedumpfile.c
>@@ -3801,7 +3801,8 @@ read_flat_data_header(struct makedumpfile_data_header *fdh)
> int
> reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
> {
>- size_t buf_size;
>+ off_t off;
>+ size_t buf_size, write_size;
> char *buf = NULL;
>
> int ret = FALSE;
>@@ -3809,6 +3810,7 @@ reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
> assert(start_offset < end_offset);
> buf_size = end_offset - start_offset;
>
>+ buf_size = MIN(info->page_size, buf_size);
> if ((buf = malloc(buf_size)) == NULL) {
> ERRMSG("Can't allocate memory for the size of reserved diskspace. %s\n",
> strerror(errno));
>@@ -3816,8 +3818,15 @@ reserve_diskspace(int fd, off_t start_offset, off_t end_offset, char *file_name)
> }
>
> memset(buf, 0, buf_size);
>- if (!write_buffer(fd, start_offset, buf, buf_size, file_name))
>- goto out;
>+ off = start_offset;
>+
>+ while (off < end_offset) {
>+ write_size = MIN(buf_size, end_offset - off);
>+ if (!write_buffer(fd, off, buf, write_size, file_name))
>+ goto out;
>+
>+ off += write_size;
>+ }
>
> ret = TRUE;
> out:
>--
>1.7.1
>
>
>_______________________________________________
>kexec mailing list
>kexec@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION
2015-06-29 8:33 ` [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Atsushi Kumagai
@ 2015-06-30 1:02 ` "Zhou, Wenjian/周文剑"
2015-07-02 2:19 ` Atsushi Kumagai
0 siblings, 1 reply; 6+ messages in thread
From: "Zhou, Wenjian/周文剑" @ 2015-06-30 1:02 UTC (permalink / raw)
To: Atsushi Kumagai; +Cc: kexec@lists.infradead.org
On 06/29/2015 04:33 PM, Atsushi Kumagai wrote:
> Hello Zhou,
>
>> Currently, there is no obvious description in IMPLEMENTATION for
>> distinguishing the lost pages resulted by ENOSPACE errors or others.
>> So, it is added.
>>
>> Signed-off-by: Zhou Wenjian<zhouwj-fnst@cn.fujitsu.com>
>> ---
>> IMPLEMENTATION | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/IMPLEMENTATION b/IMPLEMENTATION
>> index 72df5d5..70a3f7c 100644
>> --- a/IMPLEMENTATION
>> +++ b/IMPLEMENTATION
>> @@ -240,6 +240,8 @@
>> The page header and page data are written in pairs. When writing page data
>> (pfn N+1), if ENOSPACE error happens, the page headers after N won't be
>> written either.
>> + When reading page from incomplete core, only the page lost by ENOSPACE errors
>> + has 0 in its corresponding page descriptor's member offset.
>
> I'm not sure this is correct.
> Could you point me where is the code which sets 0 to the page_desc->offset
> of the lost page ?
>
There is no code to set it. Since the data lost is filled with zero when it is read,
the page_desc->offset will also be zero.
And zero page has its own offset not equal 0. So we can distinguish them with their
member offset.
--
Thanks
Zhou Wenjian
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION
2015-06-30 1:02 ` "Zhou, Wenjian/周文剑"
@ 2015-07-02 2:19 ` Atsushi Kumagai
0 siblings, 0 replies; 6+ messages in thread
From: Atsushi Kumagai @ 2015-07-02 2:19 UTC (permalink / raw)
To: zhouwj-fnst@cn.fujitsu.com; +Cc: kexec@lists.infradead.org
>On 06/29/2015 04:33 PM, Atsushi Kumagai wrote:
>> Hello Zhou,
>>
>>> Currently, there is no obvious description in IMPLEMENTATION for
>>> distinguishing the lost pages resulted by ENOSPACE errors or others.
>>> So, it is added.
>>>
>>> Signed-off-by: Zhou Wenjian<zhouwj-fnst@cn.fujitsu.com>
>>> ---
>>> IMPLEMENTATION | 2 ++
>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/IMPLEMENTATION b/IMPLEMENTATION
>>> index 72df5d5..70a3f7c 100644
>>> --- a/IMPLEMENTATION
>>> +++ b/IMPLEMENTATION
>>> @@ -240,6 +240,8 @@
>>> The page header and page data are written in pairs. When writing page data
>>> (pfn N+1), if ENOSPACE error happens, the page headers after N won't be
>>> written either.
>>> + When reading page from incomplete core, only the page lost by ENOSPACE errors
>>> + has 0 in its corresponding page descriptor's member offset.
>>
>> I'm not sure this is correct.
>> Could you point me where is the code which sets 0 to the page_desc->offset
>> of the lost page ?
>>
>
>There is no code to set it. Since the data lost is filled with zero when it is read,
>the page_desc->offset will also be zero.
>And zero page has its own offset not equal 0. So we can distinguish them with their
>member offset.
Ah, you mean the behavior of crash ?
I think it would be better to describe that in more detail in order,
otherwise this additional description sounds sudden to me.
Thanks
Atsushi Kumagai
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-07-02 2:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-25 8:22 [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Zhou Wenjian
2015-06-25 8:22 ` [PATCH 2/2] makedumpfile: Optimise the function reserve_diskspace Zhou Wenjian
2015-06-29 8:33 ` Atsushi Kumagai
2015-06-29 8:33 ` [PATCH 1/2] makedumpfile: Add description of pages lost by ENOSPACE in IMPLEMENTATION Atsushi Kumagai
2015-06-30 1:02 ` "Zhou, Wenjian/周文剑"
2015-07-02 2:19 ` Atsushi Kumagai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.