You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(66) |
Jul
(102) |
Aug
(78) |
Sep
(106) |
Oct
(137) |
Nov
(147) |
Dec
(147) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(71) |
Feb
(139) |
Mar
(86) |
Apr
(76) |
May
(57) |
Jun
(10) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(12) |
Nov
(12) |
Dec
(18) |
| 2011 |
Jan
(16) |
Feb
(19) |
Mar
(3) |
Apr
(1) |
May
(16) |
Jun
(17) |
Jul
(74) |
Aug
(22) |
Sep
(18) |
Oct
(24) |
Nov
(21) |
Dec
(30) |
| 2012 |
Jan
(31) |
Feb
(16) |
Mar
(22) |
Apr
(25) |
May
(18) |
Jun
(13) |
Jul
(83) |
Aug
(49) |
Sep
(20) |
Oct
(60) |
Nov
(35) |
Dec
(28) |
| 2013 |
Jan
(39) |
Feb
(61) |
Mar
(35) |
Apr
(21) |
May
(45) |
Jun
(56) |
Jul
(20) |
Aug
(9) |
Sep
(10) |
Oct
(31) |
Nov
(8) |
Dec
(4) |
| 2014 |
Jan
(6) |
Feb
(7) |
Mar
(7) |
Apr
(6) |
May
(4) |
Jun
(8) |
Jul
(5) |
Aug
(2) |
Sep
(4) |
Oct
(4) |
Nov
(11) |
Dec
(5) |
| 2015 |
Jan
(4) |
Feb
(4) |
Mar
(3) |
Apr
(4) |
May
(9) |
Jun
(4) |
Jul
(15) |
Aug
(8) |
Sep
(16) |
Oct
(18) |
Nov
(15) |
Dec
(7) |
| 2016 |
Jan
(20) |
Feb
(9) |
Mar
(15) |
Apr
(24) |
May
(16) |
Jun
(28) |
Jul
(22) |
Aug
(23) |
Sep
(18) |
Oct
(30) |
Nov
(40) |
Dec
(9) |
| 2017 |
Jan
(1) |
Feb
(8) |
Mar
(37) |
Apr
(26) |
May
(25) |
Jun
(46) |
Jul
(24) |
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: 中亚兴 <ad...@zy...> - 2012-04-12 00:25:58
|
<font color="white">深圳市金智商业研究有限公司</font><P align=center><FONT color=#ff0000 size=6>2012年深圳人才引进问题协助</FONT></P> <P> 2012年是深圳人才引进变革的一年,调干政策有一些略微的变更但是原来的招调工政策已经不存在而全部变成积分入户政策,积分入户虽然看起来简单但是在操作流程和审核资料的过程中有很多难点,以前企业里办理了很多年招调工业务的人员都会出现一些错误导致企业员工办理户口失败在积分这种审核引进人才多元素资料的情况下出现的问题将会更多、、、</P> <P><FONT color=#ff0000>中亚兴(启众)户口办理协助你解决户口办理过程中的难题:</FONT></P> <P>A、 由从事多年户口办理经验的专家进企业讲解积分入户政策及办理流程,并可解答企业及个人办理户口 疑难问题。费用按天收取。<BR>B、 全程协助企业员工及个人办理调干及积分入户。费用按照人数协商。<BR>C、 企业人才引进业务外包,即由我们公司专业人员全程办理企业员工的人才引进业务,包括公司立户、员工资料准备协助、员工资料审核、递交。企业须派一内部员工协助。</P> <P>专业为企业人事、老板个人解决深圳户口疑难问题:(敬请留用,以备后用)</P> <P>1、公司纳税不够立户问题,协助企业给员工办理深圳户口;<BR>2、招调工、调干调令下不来,资料交上去调令没结果;<BR>3、招调工资格证书包过咨询办理,积分入户办理咨询;<BR>4、招调工档案、调干档案丢失、资料不够不能办理户口等疑难问题帮你解决;<BR>5、大专、本科疑难学历验证、快速出验证报告;<BR>6、深圳社保补交、挂靠</P> <P><BR> 深圳市中亚兴职业培训(深圳市启众文化传播有限公司)提供包括毕业生接收、调干、招调工在内的多种深圳户口解决方案。针对客户的具体情况,量身裁衣,为你制订符合你自身要求入户方案。我们具有多年人才引进咨询服务经验,提供全程方案策划、政策咨询解答,解决疑难问题能力强,精通人才引进政策、服务体系完善。<BR> <BR> 我们的核心团队是由资深人力资源专家、人事劳动专业律师、政府官员和专业执行团队组成的,我们全体员工均拥有国内知名大学本科以上学历,不但拥有扎实的专业知识而且具备多年的人力资源实践工作经验,是集理论与实践为一体的专业化人才。<BR> <BR>相信凭着我们的的专业和热忱肯定能为你带来最好的服务。</P> <P><BR>在线QQ:270075428、 429364855、20810405 网址:<A href="http://www.zyxstar.com/">www.zyxstar.com</A><BR>咨询电话:15986651800 张先生、13418507373向小姐、13510290885郭先生<BR></P> |
|
From: 中亚兴 <adm...@zy...> - 2012-04-08 22:35:15
|
<P align=center><FONT color=#ff0000 size=6>2012年深圳人才引进问题协助</FONT></P> <P> 2012年是深圳人才引进变革的一年,调干政策有一些略微的变更但是原来的招调工政策已经不存在而全部变成积分入户政策,积分入户虽然看起来简单但是在操作流程和审核资料的过程中有很多难点,以前企业里办理了很多年招调工业务的人员都会出现一些错误导致企业员工办理户口失败在积分这种审核引进人才多元素资料的情况下出现的问题将会更多、、、</P> <P><FONT color=#ff0000>中亚兴(启众)户口办理协助你解决户口办理过程中的难题:</FONT></P> <P>A、 由从事多年户口办理经验的专家进企业讲解积分入户政策及办理流程,并可解答企业及个人办理户口 疑难问题。费用按天收取。<BR>B、 全程协助企业员工及个人办理调干及积分入户。费用按照人数协商。<BR>C、 企业人才引进业务外包,即由我们公司专业人员全程办理企业员工的人才引进业务,包括公司立户、员工资料准备协助、员工资料审核、递交。企业须派一内部员工协助。</P> <P>专业为企业人事、老板个人解决深圳户口疑难问题:(敬请留用,以备后用)</P> <P>1、公司纳税不够立户问题,协助企业给员工办理深圳户口;<BR>2、招调工、调干调令下不来,资料交上去调令没结果;<BR>3、招调工资格证书包过咨询办理,积分入户办理咨询;<BR>4、招调工档案、调干档案丢失、资料不够不能办理户口等疑难问题帮你解决;<BR>5、大专、本科疑难学历验证、快速出验证报告;<br>6、深圳社保补交、挂靠</P> <P><BR> 深圳市中亚兴职业培训(深圳市启众文化传播有限公司)提供包括毕业生接收、调干、招调工在内的多种深圳户口解决方案。针对客户的具体情况,量身裁衣,为你制订符合你自身要求入户方案。我们具有多年人才引进咨询服务经验,提供全程方案策划、政策咨询解答,解决疑难问题能力强,精通人才引进政策、服务体系完善。<BR> <BR> 我们的核心团队是由资深人力资源专家、人事劳动专业律师、政府官员和专业执行团队组成的,我们全体员工均拥有国内知名大学本科以上学历,不但拥有扎实的专业知识而且具备多年的人力资源实践工作经验,是集理论与实践为一体的专业化人才。<BR> <BR>相信凭着我们的的专业和热忱肯定能为你带来最好的服务。</P> <P><BR>在线QQ:270075428、 429364855、20810405 网址:<A href="http://www.zyxstar.com/">www.zyxstar.com</A><BR>咨询电话:15986651800 张先生、13418507373向小姐、13510290885郭先生<BR></P> |
|
From: KOSAKI M. <kos...@gm...> - 2012-04-04 17:38:26
|
(4/3/12 4:25 AM), Jerome Marchand wrote:
> On 04/02/2012 07:10 PM, KOSAKI Motohiro wrote:
>> 2012/3/30 Satoru Moriya<sat...@hd...>:
>>> Hello Kosaki-san,
>>>
>>> On 03/07/2012 01:18 PM, Satoru Moriya wrote:
>>>> On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote:
>>>>> Thank you. I brought back to memory it. Unfortunately DB folks are
>>>>> still mainly using RHEL5 generation distros. At that time,
>>>>> swapiness=0 doesn't mean disabling swap.
>>>>>
>>>>> They want, "don't swap as far as kernel has any file cache page". but
>>>>> linux don't have such feature. then they used swappiness for emulate
>>>>> it. So, I think this patch clearly make userland harm. Because of, we
>>>>> don't have an alternative way.
>>>
>>> As I wrote in the previous mail(see below), with this patch
>>> the kernel begins to swap out when the sum of free pages and
>>> filebacked pages reduces less than watermark_high.
>
> Actually, this is true only for global reclaims. Reclaims in cgroup can fail
> in this case.
>
>>>
>>> So the kernel reclaims pages like following.
>>>
>>> nr_free + nr_filebacked>= watermark_high: reclaim only filebacked pages
>>> nr_free + nr_filebacked< watermark_high: reclaim only anonymous pages
>>
>> How?
>
> get_scan_count() checks that case explicitly:
>
> if (global_reclaim(sc)) {
> free = zone_page_state(mz->zone, NR_FREE_PAGES);
> /* If we have very few page cache pages,
> force-scan anon pages. */
> if (unlikely(file + free<= high_wmark_pages(mz->zone))) {
> fraction[0] = 1;
> fraction[1] = 0;
> denominator = 1;
> goto out;
> }
> }
Eek. This is silly. Nowaday many people enabled THP and it increase zone watermark.
so, high watermask is not good threshold anymore.
|
|
From: Satoru M. <sat...@hd...> - 2012-04-03 15:18:10
|
On 04/03/2012 07:25 AM, Jerome Marchand wrote:
> On 04/02/2012 07:10 PM, KOSAKI Motohiro wrote:
>> 2012/3/30 Satoru Moriya <sat...@hd...>:
>>> Hello Kosaki-san,
>>>
>>> On 03/07/2012 01:18 PM, Satoru Moriya wrote:
>>>> On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote:
>>>>> Thank you. I brought back to memory it. Unfortunately DB folks are
>>>>> still mainly using RHEL5 generation distros. At that time,
>>>>> swapiness=0 doesn't mean disabling swap.
>>>>>
>>>>> They want, "don't swap as far as kernel has any file cache page". but
>>>>> linux don't have such feature. then they used swappiness for emulate
>>>>> it. So, I think this patch clearly make userland harm. Because of, we
>>>>> don't have an alternative way.
>>>
>>> As I wrote in the previous mail(see below), with this patch
>>> the kernel begins to swap out when the sum of free pages and
>>> filebacked pages reduces less than watermark_high.
>
> Actually, this is true only for global reclaims. Reclaims in cgroup can fail
> in this case.
Right.
As long as we consider RHEL5 users above, I believe they don't care
about cgroup case.
>>>
>>> So the kernel reclaims pages like following.
>>>
>>> nr_free + nr_filebacked >= watermark_high: reclaim only filebacked pages
>>> nr_free + nr_filebacked < watermark_high: reclaim only anonymous pages
I made a tiny mistake.
Correct one is following ;p
nr_free + nr_filebacked > watermark_high: reclaim only filebacked pages
nr_free + nr_filebacked <= watermark_high: reclaim only anonymous pages
>> How?
>
> get_scan_count() checks that case explicitly:
>
> if (global_reclaim(sc)) {
> free = zone_page_state(mz->zone, NR_FREE_PAGES);
> /* If we have very few page cache pages,
> force-scan anon pages. */
> if (unlikely(file + free <= high_wmark_pages(mz->zone))) {
> fraction[0] = 1;
> fraction[1] = 0;
> denominator = 1;
> goto out;
> }
> }
Regards,
Satoru
|
|
From: Jerome M. <jma...@re...> - 2012-04-03 11:25:39
|
On 04/02/2012 07:10 PM, KOSAKI Motohiro wrote:
> 2012/3/30 Satoru Moriya <sat...@hd...>:
>> Hello Kosaki-san,
>>
>> On 03/07/2012 01:18 PM, Satoru Moriya wrote:
>>> On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote:
>>>> Thank you. I brought back to memory it. Unfortunately DB folks are
>>>> still mainly using RHEL5 generation distros. At that time,
>>>> swapiness=0 doesn't mean disabling swap.
>>>>
>>>> They want, "don't swap as far as kernel has any file cache page". but
>>>> linux don't have such feature. then they used swappiness for emulate
>>>> it. So, I think this patch clearly make userland harm. Because of, we
>>>> don't have an alternative way.
>>
>> As I wrote in the previous mail(see below), with this patch
>> the kernel begins to swap out when the sum of free pages and
>> filebacked pages reduces less than watermark_high.
Actually, this is true only for global reclaims. Reclaims in cgroup can fail
in this case.
>>
>> So the kernel reclaims pages like following.
>>
>> nr_free + nr_filebacked >= watermark_high: reclaim only filebacked pages
>> nr_free + nr_filebacked < watermark_high: reclaim only anonymous pages
>
> How?
get_scan_count() checks that case explicitly:
if (global_reclaim(sc)) {
free = zone_page_state(mz->zone, NR_FREE_PAGES);
/* If we have very few page cache pages,
force-scan anon pages. */
if (unlikely(file + free <= high_wmark_pages(mz->zone))) {
fraction[0] = 1;
fraction[1] = 0;
denominator = 1;
goto out;
}
}
Regards,
Jerome
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to maj...@vg...
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
|
|
From: Pen K. <kyl...@st...> - 2012-04-03 10:41:23
|
http://ancsicsakft.eu/hundred.html Take the step to your satisfied intimate life |
|
From: KOSAKI M. <kos...@jp...> - 2012-04-02 17:10:42
|
2012/3/30 Satoru Moriya <sat...@hd...>: > Hello Kosaki-san, > > On 03/07/2012 01:18 PM, Satoru Moriya wrote: >> On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote: >>> Thank you. I brought back to memory it. Unfortunately DB folks are >>> still mainly using RHEL5 generation distros. At that time, >>> swapiness=0 doesn't mean disabling swap. >>> >>> They want, "don't swap as far as kernel has any file cache page". but >>> linux don't have such feature. then they used swappiness for emulate >>> it. So, I think this patch clearly make userland harm. Because of, we >>> don't have an alternative way. > > As I wrote in the previous mail(see below), with this patch > the kernel begins to swap out when the sum of free pages and > filebacked pages reduces less than watermark_high. > > So the kernel reclaims pages like following. > > nr_free + nr_filebacked >= watermark_high: reclaim only filebacked pages > nr_free + nr_filebacked < watermark_high: reclaim only anonymous pages How? |
|
From: Satoru M. <sat...@hd...> - 2012-03-30 22:44:45
|
Hello Kosaki-san, On 03/07/2012 01:18 PM, Satoru Moriya wrote: > On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote: >> Thank you. I brought back to memory it. Unfortunately DB folks are >> still mainly using RHEL5 generation distros. At that time, >> swapiness=0 doesn't mean disabling swap. >> >> They want, "don't swap as far as kernel has any file cache page". but >> linux don't have such feature. then they used swappiness for emulate >> it. So, I think this patch clearly make userland harm. Because of, we >> don't have an alternative way. As I wrote in the previous mail(see below), with this patch the kernel begins to swap out when the sum of free pages and filebacked pages reduces less than watermark_high. So the kernel reclaims pages like following. nr_free + nr_filebacked >= watermark_high: reclaim only filebacked pages nr_free + nr_filebacked < watermark_high: reclaim only anonymous pages Do you think this behavior satisfies DB users' requirement? > If they expect the behavior that "don't swap as far as kernel has any > file cache page", this patch definitely helps them because if we set > swappiness==0, kernel does not swap out > *until* nr_free + nr_filebacked < high watermark in the zone. > It means kernel begins to swap out when nr_free + nr_filebacked > becomes less than high watermark. > > But, yes, this patch actually changes the behavior with swappiness==0 > and so it may make userland harm. > > How about introducing new value e.g -1 to avoid swap and maintain > compatibility? Regards, Satoru |
|
From: Seiji A. <sei...@hd...> - 2012-03-26 16:07:05
|
Hi,
Recently, there has been some changes in kmsg_dump() below and they have been applied to linus-tree.
(1) kmsg_dump(KMSG_DUMP_KEXEC) was removed.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61
(2) A order of "enum kmsg_dump_reason" was modified.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681
This patch replaces get_reason_str() with reason_str array in accordance with akpm's comment below.
https://lkml.org/lkml/2012/3/24/18
It will not be broken by future re-arrangements of the enum values.
Signed-off-by: Seiji Aguchi <sei...@hd...>
---
fs/pstore/platform.c | 32 ++++++++++++--------------------
1 files changed, 12 insertions(+), 20 deletions(-)
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 82c585f..e8a14cd 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -68,25 +68,14 @@ void pstore_set_kmsg_bytes(int bytes)
/* Tag each group of saved records with a sequence number */
static int oopscount;
-static const char *get_reason_str(enum kmsg_dump_reason reason)
-{
- switch (reason) {
- case KMSG_DUMP_PANIC:
- return "Panic";
- case KMSG_DUMP_OOPS:
- return "Oops";
- case KMSG_DUMP_EMERG:
- return "Emergency";
- case KMSG_DUMP_RESTART:
- return "Restart";
- case KMSG_DUMP_HALT:
- return "Halt";
- case KMSG_DUMP_POWEROFF:
- return "Poweroff";
- default:
- return "Unknown";
- }
-}
+static const char * const reason_str[] = {
+ [KMSG_DUMP_PANIC] = "Panic",
+ [KMSG_DUMP_OOPS] = "Oops",
+ [KMSG_DUMP_EMERG] = "Emergency",
+ [KMSG_DUMP_RESTART] = "Restart",
+ [KMSG_DUMP_HALT] = "Halt",
+ [KMSG_DUMP_POWEROFF] = "Poweroff",
+};
/*
* callback from kmsg_dump. (s2,l2) has the most recently
@@ -109,7 +98,10 @@ static void pstore_dump(struct kmsg_dumper *dumper,
unsigned long flags = 0;
int is_locked = 0;
- why = get_reason_str(reason);
+ if (reason < ARRAY_SIZE(reason_str))
+ why = reason_str[reason];
+ else
+ why = "Unknown";
if (in_nmi()) {
is_locked = spin_trylock(&psinfo->buf_lock);
-- 1.7.1
|
|
From: Seiji A. <sei...@hd...> - 2012-03-24 16:04:12
|
> Better:
>
> static char *reason_str[] = {
> [KMSG_DUMP_OOPS] = "Oops",
> [KMSG_DUMP_PANIC] = "Panic",
> ...
> [KMSG_DUMP_POWEROFF] = "Poweroff",
> };
Thanks, Andrew.
I will update my patch.
Seiji
|
|
From: Andrew M. <ak...@li...> - 2012-03-24 07:25:33
|
On Fri, 16 Mar 2012 13:01:49 -0400 Seiji Aguchi <sei...@hd...> wrote: > Hi, > > Recently, there has been some changes in kmsg_dump() below and they have been applied to linus-tree. > (1) kmsg_dump(KMSG_DUMP_KEXEC) was removed. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61 > > (2) A order of "enum kmsg_dump_reason" was modified. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681 > > This patch removes reason_str array and add get_reason_str() in accordance with Adrian's comment below. > https://lkml.org/lkml/2012/3/16/63 > > Signed-off-by: Seiji Aguchi <sei...@hd...> > Signed-off-by: Adrian Hunter <adr...@in...> > > --- > fs/pstore/platform.c | 30 ++++++++++++++++++++++-------- > 1 files changed, 22 insertions(+), 8 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..82c585f 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -68,9 +68,25 @@ void pstore_set_kmsg_bytes(int bytes) > /* Tag each group of saved records with a sequence number */ > static int oopscount; > > -static char *reason_str[] = { > - "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency" > -}; > +static const char *get_reason_str(enum kmsg_dump_reason reason) { > + switch (reason) { > + case KMSG_DUMP_PANIC: > + return "Panic"; > + case KMSG_DUMP_OOPS: > + return "Oops"; > + case KMSG_DUMP_EMERG: > + return "Emergency"; > + case KMSG_DUMP_RESTART: > + return "Restart"; > + case KMSG_DUMP_HALT: > + return "Halt"; > + case KMSG_DUMP_POWEROFF: > + return "Poweroff"; > + default: > + return "Unknown"; > + } > +} Better: static char *reason_str[] = { [KMSG_DUMP_OOPS] = "Oops", [KMSG_DUMP_PANIC] = "Panic", ... [KMSG_DUMP_POWEROFF] = "Poweroff", }; |
|
From: Tony L. <ton...@gm...> - 2012-03-16 22:47:24
|
> Future proofs things a little bit. Looks good to me. > > Acked-by: Don Zickus <dz...@re...> Looks good to me too. Applied. Should show up in the next linux-next tree. Will ask Linus to pull in next merge window. -Tony |
|
From: Don Z. <dz...@re...> - 2012-03-16 20:08:21
|
On Fri, Mar 16, 2012 at 01:01:49PM -0400, Seiji Aguchi wrote: > Hi, > > Recently, there has been some changes in kmsg_dump() below and they have been applied to linus-tree. > (1) kmsg_dump(KMSG_DUMP_KEXEC) was removed. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61 > > (2) A order of "enum kmsg_dump_reason" was modified. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681 > > This patch removes reason_str array and add get_reason_str() in accordance with Adrian's comment below. > https://lkml.org/lkml/2012/3/16/63 Future proofs things a little bit. Looks good to me. Acked-by: Don Zickus <dz...@re...> > > Signed-off-by: Seiji Aguchi <sei...@hd...> > Signed-off-by: Adrian Hunter <adr...@in...> > > --- > fs/pstore/platform.c | 30 ++++++++++++++++++++++-------- > 1 files changed, 22 insertions(+), 8 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..82c585f 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -68,9 +68,25 @@ void pstore_set_kmsg_bytes(int bytes) > /* Tag each group of saved records with a sequence number */ > static int oopscount; > > -static char *reason_str[] = { > - "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency" > -}; > +static const char *get_reason_str(enum kmsg_dump_reason reason) { > + switch (reason) { > + case KMSG_DUMP_PANIC: > + return "Panic"; > + case KMSG_DUMP_OOPS: > + return "Oops"; > + case KMSG_DUMP_EMERG: > + return "Emergency"; > + case KMSG_DUMP_RESTART: > + return "Restart"; > + case KMSG_DUMP_HALT: > + return "Halt"; > + case KMSG_DUMP_POWEROFF: > + return "Poweroff"; > + default: > + return "Unknown"; > + } > +} > > /* > * callback from kmsg_dump. (s2,l2) has the most recently @@ -85,17 +101,15 @@ static void pstore_dump(struct kmsg_dumper *dumper, > unsigned long s1_start, s2_start; > unsigned long l1_cpy, l2_cpy; > unsigned long size, total = 0; > - char *dst, *why; > + char *dst; > + const char *why; > u64 id; > int hsize, ret; > unsigned int part = 1; > unsigned long flags = 0; > int is_locked = 0; > > - if (reason < ARRAY_SIZE(reason_str)) > - why = reason_str[reason]; > - else > - why = "Unknown"; > + why = get_reason_str(reason); > > if (in_nmi()) { > is_locked = spin_trylock(&psinfo->buf_lock); > -- > 1.7.1 |
|
From: Seiji A. <sei...@hd...> - 2012-03-16 17:02:06
|
Hi,
Recently, there has been some changes in kmsg_dump() below and they have been applied to linus-tree.
(1) kmsg_dump(KMSG_DUMP_KEXEC) was removed.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61
(2) A order of "enum kmsg_dump_reason" was modified.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681
This patch removes reason_str array and add get_reason_str() in accordance with Adrian's comment below.
https://lkml.org/lkml/2012/3/16/63
Signed-off-by: Seiji Aguchi <sei...@hd...>
Signed-off-by: Adrian Hunter <adr...@in...>
---
fs/pstore/platform.c | 30 ++++++++++++++++++++++--------
1 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..82c585f 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -68,9 +68,25 @@ void pstore_set_kmsg_bytes(int bytes)
/* Tag each group of saved records with a sequence number */
static int oopscount;
-static char *reason_str[] = {
- "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency"
-};
+static const char *get_reason_str(enum kmsg_dump_reason reason) {
+ switch (reason) {
+ case KMSG_DUMP_PANIC:
+ return "Panic";
+ case KMSG_DUMP_OOPS:
+ return "Oops";
+ case KMSG_DUMP_EMERG:
+ return "Emergency";
+ case KMSG_DUMP_RESTART:
+ return "Restart";
+ case KMSG_DUMP_HALT:
+ return "Halt";
+ case KMSG_DUMP_POWEROFF:
+ return "Poweroff";
+ default:
+ return "Unknown";
+ }
+}
/*
* callback from kmsg_dump. (s2,l2) has the most recently @@ -85,17 +101,15 @@ static void pstore_dump(struct kmsg_dumper *dumper,
unsigned long s1_start, s2_start;
unsigned long l1_cpy, l2_cpy;
unsigned long size, total = 0;
- char *dst, *why;
+ char *dst;
+ const char *why;
u64 id;
int hsize, ret;
unsigned int part = 1;
unsigned long flags = 0;
int is_locked = 0;
- if (reason < ARRAY_SIZE(reason_str))
- why = reason_str[reason];
- else
- why = "Unknown";
+ why = get_reason_str(reason);
if (in_nmi()) {
is_locked = spin_trylock(&psinfo->buf_lock);
--
1.7.1
|
|
From: Seiji A. <sei...@hd...> - 2012-03-16 13:38:23
|
Hi,
Thank you for reviewing my patch.
I will update it in accordance with your comment.
Seiji
> It would be better to make it so it would not break e.g.
>
> static const char *get_reason_str(enum kmsg_dump_reason reason) {
> switch (reason) {
> KMSG_DUMP_PANIC:
> return "Panic";
> KMSG_DUMP_OOPS:
> return "Oops";
> KMSG_DUMP_EMERG:
> return "Emergency";
> KMSG_DUMP_RESTART:
> return "Restart";
> KMSG_DUMP_HALT:
> return "Halt";
> KMSG_DUMP_POWEROFF:
> return "Poweroff";
> default:
> return "Unknown";
> }
> }
|
|
From: Adrian H. <adr...@in...> - 2012-03-16 08:18:02
|
On 07/03/12 23:17, Seiji Aguchi wrote: > Hi, > > Recently, there has been some changes in kmsg_dump() below. > (1) kmsg_dump(KMSG_DUMP_KEXEC) was removed. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61 > > (2) A order of "enum kmsg_dump_reason" was modified. > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681 > > These above patches modified kmsg_dump_reason in include/linux/kmsg_dump.h. > But reason_str in fs/pstore/platform.c was not modified. > > This patch just fixes reason_str in fs/pstore/platform.c so that pstore can work correctly. > > Signed-off-by: Seiji Aguchi <sei...@hd...> > > --- > fs/pstore/platform.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..81f4748 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -69,7 +69,7 @@ void pstore_set_kmsg_bytes(int bytes) > static int oopscount; > > static char *reason_str[] = { > - "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency" > + "Panic", "Oops", "Emergency", "Restart", "Halt", "Poweroff" > }; It would be better to make it so it would not break e.g. static const char *get_reason_str(enum kmsg_dump_reason reason) { switch (reason) { KMSG_DUMP_PANIC: return "Panic"; KMSG_DUMP_OOPS: return "Oops"; KMSG_DUMP_EMERG: return "Emergency"; KMSG_DUMP_RESTART: return "Restart"; KMSG_DUMP_HALT: return "Halt"; KMSG_DUMP_POWEROFF: return "Poweroff"; default: return "Unknown"; } } |
|
From: Seiji A. <sei...@hd...> - 2012-03-07 22:53:13
|
Hi, This patch just modified Matthew's patch which has not included in upstream to fit current upstream code. https://lkml.org/lkml/2011/9/20/468 Right now all pstore accesses to efivars will delete or create new sysfs nodes. This is less than ideal if we've panicked or rebooting for following reasons. - efi_pstore may not work if kernel panics in interrupt context, since cpu can sleep while creating sysfs files. - we don't need to create sysfs if we've panicked or rebooting, because no one can access to it. Signed-off-by: Seiji Aguchi <sei...@hd...> Signed-off-by: Matthew Garrett <mj...@re...> --- drivers/firmware/efivars.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index d25599f..34c8890 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c @@ -550,6 +550,16 @@ static int efi_pstore_write(enum pstore_type_id type, spin_unlock(&efivars->lock); + /* + * If it's more severe than KMSG_DUMP_OOPS then we're already dead. + * Don't bother playing with sysfs. + */ + + if (reason != KMSG_DUMP_OOPS) { + *id = part; + return ret; + } + if (found) efivar_unregister(found); -- 1.7.1 |
|
From: Satoru M. <sat...@hd...> - 2012-03-07 21:51:18
|
On 03/07/2012 12:19 PM, KOSAKI Motohiro wrote: > On 3/5/2012 4:56 PM, Johannes Weiner wrote: >> On Fri, Mar 02, 2012 at 12:36:40PM -0500, Satoru Moriya wrote: >>> >>> This patch changes the behavior with swappiness==0. If we set >>> swappiness==0, the kernel does not swap out completely (for global >>> reclaim until the amount of free pages and filebacked pages in a >>> zone has been reduced to something very very small (nr_free + >>> nr_filebacked < high watermark)). >>> >>> Any comments are welcome. >> >> Last time I tried that (getting rid of sc->may_swap, using >> !swappiness), it was rejected it as there were users who relied on >> swapping very slowly with this setting. >> >> KOSAKI-san, do I remember correctly? Do you still think it's an >> issue? >> >> Personally, I still think it's illogical that !swappiness allows >> swapping and would love to see this patch go in. > > Thank you. I brought back to memory it. Unfortunately DB folks are > still mainly using RHEL5 generation distros. At that time, swapiness=0 > doesn't mean disabling swap. > > They want, "don't swap as far as kernel has any file cache page". but > linux don't have such feature. then they used swappiness for emulate > it. So, I think this patch clearly make userland harm. Because of, we > don't have an alternative way. If they expect the behavior that "don't swap as far as kernel has any file cache page", this patch definitely helps them because if we set swappiness==0, kernel does not swap out *until* nr_free + nr_filebacked < high watermark in the zone. It means kernel begins to swap out when nr_free + nr_filebacked becomes less than high watermark. But, yes, this patch actually changes the behavior with swappiness==0 and so it may make userland harm. How about introducing new value e.g -1 to avoid swap and maintain compatibility? Regards, Satoru |
|
From: Seiji A. <sei...@hd...> - 2012-03-07 21:17:28
|
Hi,
Recently, there has been some changes in kmsg_dump() below.
(1) kmsg_dump(KMSG_DUMP_KEXEC) was removed.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61
(2) A order of "enum kmsg_dump_reason" was modified.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681
These above patches modified kmsg_dump_reason in include/linux/kmsg_dump.h.
But reason_str in fs/pstore/platform.c was not modified.
This patch just fixes reason_str in fs/pstore/platform.c so that pstore can work correctly.
Signed-off-by: Seiji Aguchi <sei...@hd...>
---
fs/pstore/platform.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..81f4748 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -69,7 +69,7 @@ void pstore_set_kmsg_bytes(int bytes)
static int oopscount;
static char *reason_str[] = {
- "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency"
+ "Panic", "Oops", "Emergency", "Restart", "Halt", "Poweroff"
};
/*
-- 1.7.1
|
|
From: KOSAKI M. <kos...@jp...> - 2012-03-07 17:19:23
|
On 3/5/2012 4:56 PM, Johannes Weiner wrote: > On Fri, Mar 02, 2012 at 12:36:40PM -0500, Satoru Moriya wrote: >> Sometimes we'd like to avoid swapping out anonymous memory >> in particular, avoid swapping out pages of important process or >> process groups while there is a reasonable amount of pagecache >> on RAM so that we can satisfy our customers' requirements. >> >> OTOH, we can control how aggressive the kernel will swap memory pages >> with /proc/sys/vm/swappiness for global and >> /sys/fs/cgroup/memory/memory.swappiness for each memcg. >> >> But with current reclaim implementation, the kernel may swap out >> even if we set swappiness==0 and there is pagecache on RAM. >> >> This patch changes the behavior with swappiness==0. If we set >> swappiness==0, the kernel does not swap out completely >> (for global reclaim until the amount of free pages and filebacked >> pages in a zone has been reduced to something very very small >> (nr_free + nr_filebacked < high watermark)). >> >> Any comments are welcome. > > Last time I tried that (getting rid of sc->may_swap, using > !swappiness), it was rejected it as there were users who relied on > swapping very slowly with this setting. > > KOSAKI-san, do I remember correctly? Do you still think it's an > issue? > > Personally, I still think it's illogical that !swappiness allows > swapping and would love to see this patch go in. Thank you. I brought back to memory it. Unfortunately DB folks are still mainly using RHEL5 generation distros. At that time, swapiness=0 doesn't mean disabling swap. They want, "don't swap as far as kernel has any file cache page". but linux don't have such feature. then they used swappiness for emulate it. So, I think this patch clearly make userland harm. Because of, we don't have an alternative way. |
|
From: Johannes W. <jw...@re...> - 2012-03-05 21:56:16
|
On Fri, Mar 02, 2012 at 12:36:40PM -0500, Satoru Moriya wrote: > Sometimes we'd like to avoid swapping out anonymous memory > in particular, avoid swapping out pages of important process or > process groups while there is a reasonable amount of pagecache > on RAM so that we can satisfy our customers' requirements. > > OTOH, we can control how aggressive the kernel will swap memory pages > with /proc/sys/vm/swappiness for global and > /sys/fs/cgroup/memory/memory.swappiness for each memcg. > > But with current reclaim implementation, the kernel may swap out > even if we set swappiness==0 and there is pagecache on RAM. > > This patch changes the behavior with swappiness==0. If we set > swappiness==0, the kernel does not swap out completely > (for global reclaim until the amount of free pages and filebacked > pages in a zone has been reduced to something very very small > (nr_free + nr_filebacked < high watermark)). > > Any comments are welcome. Last time I tried that (getting rid of sc->may_swap, using !swappiness), it was rejected it as there were users who relied on swapping very slowly with this setting. KOSAKI-san, do I remember correctly? Do you still think it's an issue? Personally, I still think it's illogical that !swappiness allows swapping and would love to see this patch go in. |
|
From: Satoru M. <sat...@hd...> - 2012-03-05 21:48:42
|
Hi Minchan, Thank you for reviewing. On 03/04/2012 01:57 AM, Minchan Kim wrote: > On Fri, Mar 02, 2012 at 12:36:40PM -0500, Satoru Moriya wrote: > > I agree this feature but current code is rather ugly on readbility. I agree with you. > Hillf's version looks to be much clean refactoring so after we merge > your patch, we can tidy it up with Hillf's patch. Thanks. No problem. Regards, Satoru |
|
From: Rik v. R. <ri...@re...> - 2012-03-05 13:50:03
|
On 03/02/2012 12:36 PM, Satoru Moriya wrote: > Sometimes we'd like to avoid swapping out anonymous memory > in particular, avoid swapping out pages of important process or > process groups while there is a reasonable amount of pagecache > on RAM so that we can satisfy our customers' requirements. > > OTOH, we can control how aggressive the kernel will swap memory pages > with /proc/sys/vm/swappiness for global and > /sys/fs/cgroup/memory/memory.swappiness for each memcg. > > But with current reclaim implementation, the kernel may swap out > even if we set swappiness==0 and there is pagecache on RAM. > > This patch changes the behavior with swappiness==0. If we set > swappiness==0, the kernel does not swap out completely > (for global reclaim until the amount of free pages and filebacked > pages in a zone has been reduced to something very very small > (nr_free + nr_filebacked< high watermark)). > > Any comments are welcome. My mind is now rested by doing a nice 10 mile hike :) > Signed-off-by: Satoru Moriya<sat...@hd...> Reviewed-by: Rik van Riel <ri...@re...> -- All rights reversed |
|
From: Minchan K. <mi...@ke...> - 2012-03-04 06:58:15
|
Hi Satoru, On Fri, Mar 02, 2012 at 12:36:40PM -0500, Satoru Moriya wrote: > Sometimes we'd like to avoid swapping out anonymous memory > in particular, avoid swapping out pages of important process or > process groups while there is a reasonable amount of pagecache > on RAM so that we can satisfy our customers' requirements. > > OTOH, we can control how aggressive the kernel will swap memory pages > with /proc/sys/vm/swappiness for global and > /sys/fs/cgroup/memory/memory.swappiness for each memcg. > > But with current reclaim implementation, the kernel may swap out > even if we set swappiness==0 and there is pagecache on RAM. > > This patch changes the behavior with swappiness==0. If we set > swappiness==0, the kernel does not swap out completely > (for global reclaim until the amount of free pages and filebacked > pages in a zone has been reduced to something very very small > (nr_free + nr_filebacked < high watermark)). > > Any comments are welcome. > > Regards, > Satoru Moriya > > Signed-off-by: Satoru Moriya <sat...@hd...> Acked-by: Minchan Kim <mi...@ke...> I agree this feature but current code is rather ugly on readbility. It's not your fault because it is caused by adding 'noswap' to avoid scanning of anon pages when priority is 0. You just used that code. :) Hillf's version looks to be much clean refactoring so after we merge your patch, we can tidy it up with Hillf's patch. |
|
From: Satoru M. <sat...@hd...> - 2012-03-02 23:43:23
|
Hi Rik,
Thank you for reviewing.
On 03/02/2012 05:47 PM, Rik van Riel wrote:
> On 03/02/2012 12:36 PM, Satoru Moriya wrote:
>> @@ -1999,7 +1999,7 @@ out:
>> unsigned long scan;
>>
>> scan = zone_nr_lru_pages(mz, lru);
>> - if (priority || noswap) {
>> + if (priority || noswap || !vmscan_swappiness(mz, sc)) {
>> scan>>= priority;
>> if (!scan&& force_scan)
>> scan = SWAP_CLUSTER_MAX;
>
> However, I do not understand why we fail to scale the number of pages
> we want to scan with priority if "noswap".
>
> For that matter, surely if we do not want to swap out anonymous pages,
> we WANT to go into this if branch, in order to make sure we set "scan"
> to 0?
>
> scan = div64_u64(scan * fraction[file], denominator);
>
> With your patch and swappiness=0, or no swap space, it looks like we
> do not zero out "scan" and may end up scanning anonymous pages.
With my patch, if swappiness==0 or noswap==1, fraction[file] is
set to 0. As a result, scan will be set to 0, too.
> Am I overlooking something? Is this correct?
>
> I mean, it is Friday and my brain is very full...
Have a nice weekend ;)
Regards,
Satoru
|