From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70965C25B75 for ; Mon, 27 May 2024 01:30:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 880276B0082; Sun, 26 May 2024 21:30:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 830096B0083; Sun, 26 May 2024 21:30:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F81A6B0085; Sun, 26 May 2024 21:30:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 511476B0082 for ; Sun, 26 May 2024 21:30:36 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C594A160C58 for ; Mon, 27 May 2024 01:30:35 +0000 (UTC) X-FDA: 82162446030.28.C79F7FB Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by imf03.hostedemail.com (Postfix) with ESMTP id 6EB7820012 for ; Mon, 27 May 2024 01:30:31 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=IKX4UxFS; spf=pass (imf03.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716773432; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VhkcBTFsilD3kzGdUGyaDcmo1XW4ngHBFrWK9pil7zU=; b=vTkX/z4wjj23ZYRvUeTAaqksQiT++CYFg409Jvi5L0pxTGHnSLiaJ+G7rIrzxeWEbB9wxV u31eMNDGxNE+II+IshbRkUUissMd+MJyB2yhCq2rhJe4Bf6AUkOaRN1aDCNOPb797NZN0W OQRWLcs/SDXf5dYe7FEyfEbe1El2k0Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716773432; a=rsa-sha256; cv=none; b=x0wO/aqHB5TzLNsMO0vy60eTBVxamqpJVjEgFoVF4PF9XSxflCpAT/UEwDtZLdwz15wfVZ M1sBTjSAer9TRLrpAXWOZjMt6GTXRwUtJOk7kHk2dbEy42g8wyi9fZJ7yzAoH/VY2yEquk dmtMTZNOUYjo1l1R6wJqlxnFMO0fVeA= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=IKX4UxFS; spf=pass (imf03.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240527013027epoutp03d43d23c9a667cddd198d3332aad96697~TNFY_7_Xr1253412534epoutp03T for ; Mon, 27 May 2024 01:30:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240527013027epoutp03d43d23c9a667cddd198d3332aad96697~TNFY_7_Xr1253412534epoutp03T DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1716773428; bh=VhkcBTFsilD3kzGdUGyaDcmo1XW4ngHBFrWK9pil7zU=; h=To:Subject:Reply-To:From:In-Reply-To:Date:References:From; b=IKX4UxFSvrWLGJKzlv5J7uHOFDQSOoXPEqqUDO+FAEOzA9c554SbepqDRsTtd1IXj 69HOkhV2orFqxCE4sLSdl8f/46fI7jYwj3vLoZ7+auI2fTiyXqslvlbaL4UeQdIHM+ SrFIet+dhDEndvY6DdHoHpm6Lz/FRjGTdTTlcGd8= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20240527013027epcas1p122e2bce2f65570fb5a72d56aef26e45a~TNFYoB4po1433114331epcas1p1R; Mon, 27 May 2024 01:30:27 +0000 (GMT) Received: from epsmges1p1.samsung.com (unknown [182.195.36.224]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4VndPb1Sj7z4x9Q9; Mon, 27 May 2024 01:30:27 +0000 (GMT) X-AuditID: b6c32a35-03dff70000002532-2b-6653e233d31a Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmges1p1.samsung.com (Symantec Messaging Gateway) with SMTP id 13.51.09522.332E3566; Mon, 27 May 2024 10:30:27 +0900 (KST) To: undisclosed-recipients:; Mime-Version: 1.0 Subject: RE: (2) [RESEND PATCH 00/10] memblock: introduce memsize showing reserved memory Reply-To: jaewon31.kim@samsung.com From: Jaewon Kim X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20240527013026epcms1p7c093ea9c6021674c1539ea48f6c49472@epcms1p7> Date: Mon, 27 May 2024 10:30:26 +0900 X-CMS-MailID: 20240527013026epcms1p7c093ea9c6021674c1539ea48f6c49472 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" CMS-TYPE: 101P X-CPGSPASS: Y X-CPGSPASS: Y X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAJsWRmVeSWpSXmKPExsWy7bCmnq7xo+A0g553HBZz1q9hs3h5SNOi e/NMRovLu+awWdxb85/V4vrLaSwWd/pesVgcWb+dyeL95GKL2Y19jA5cHjtn3WX3WLCp1GPT qk42j02fJrF7nJjxm8Wjb8sqRo8zC46we3zeJBfAEZVtk5GamJJapJCal5yfkpmXbqvkHRzv HG9qZmCoa2hpYa6kkJeYm2qr5OIToOuWmQN0oZJCWWJOKVAoILG4WEnfzqYov7QkVSEjv7jE Vim1ICWnwKxArzgxt7g0L10vL7XEytDAwMgUqDAhO+PsQ9uCw04V3Y8sGxg7HboYOTkkBEwk js+9ztzFyMUhJLCDUeJd4zkWkISIgIzE3NmPWbsYOTh4BQQl/u4QBgkLC0RLzJzeAlYiJKAk cfbHFXaIuK5EU/dqsDibgLbE+wWTWCHm80rMaH/KAmFLS2xfvpURxOYU0JKYfHctVI2oxM3V b9lh7PfH5jNC2CISrffOMkPYghIPfu5mhJnz5/hzNgi7WGJZ5wMmCLtGYsW5VVBxc4mGtyvB bF4BX4m3NyaDzWcRUJVY/mwm1D0uEqs3fQS7gRno5mULXzODvMssoCmxfpc+RJhP4t3XHrhX Gjb+ZsfG3jHvCdQJahItz75C1ctI/P33DMr2kLh7bTcLJJg3MkscednBPIFRYRYidGchuWIW whULGJlXMYqlFhTnpqcWGxYYwqM2OT93EyM4qWqZ7mCc+PaD3iFGJg7GQ4wSHMxKIrwi8wLT hHhTEiurUovy44tKc1KLDzGaAv0/kVlKNDkfmNbzSuINTSwNTMyMTCyMLY3NlMR5z1wpSxUS SE8sSc1OTS1ILYLpY+LglGpg2sQn+ySzoWXRoak/XP7vssrfHvb2g7VB73se9631K83miiR3 zn8y9Qz77h2nF//qyXz887H7LOmNZTPexjuY7pf8spOlxPWZ5AEDDs/Ii3rXP63IPd3oLy7z Q+rRPz3Hcr8jAnPq9n68kjBHfXnhVYb5adaBVWpTjIqEbnVcfFJb3nXdR2EGd/ofk2cfZihn PFT9VMnSG7sl7qJh7I/N/w5/fWvy2LDwU0GkVr1Q8/rYONYz808LGuxyMlmqqaDQmRvo477S 7SRrq2uUyULOv/tled8a28+/baX+pSO8TiDjU8L5dw2fN16arBa3xEjC9Yyp9ZkZbxr/35p7 +8YMGaF1ldeUE0LucRo9f7tbRImlOCPRUIu5qDgRAFC5dCUzBAAA DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240521024009epcas1p10ed9f9b929203183a29f79508e79bb76 References: <20240521023957.2587005-1-jaewon31.kim@samsung.com> <20240521025329epcms1p6ce11064c0f0608a0156d82fda7ef285c@epcms1p6> <20240521101753epcms1p50443f6b88adea211dd9bbb417dd57cb1@epcms1p5> <20240524090715epcms1p274939a1d5954be3423f6ce14a3df6f92@epcms1p2> X-Rspam-User: X-Stat-Signature: 6gxsju4q3p5qag9jnikie8zbby7ogxjm X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6EB7820012 X-HE-Tag: 1716773431-30442 X-HE-Meta: U2FsdGVkX1/qLVe/wqTj1RKBb/xVTkcjlwVaXWsqU8cm8hVOP8F8xqHbRK7U5DkDPsIf6RVFSELJMEIs/1XJdnD7sox1GB76nb6+2NmunQB0udjMXza5Do+kb2SnRC2GZ+PvUteoVc0kL/6G1SwAMkRfoboG7aNU0YC7cHUF2xYt+EGxffn1BulMU0TsLk0Vfo/xgfQBUIHu3ZRtE/Y6YVMymPaQCpen7B+N3/2vmIGdr2orj4eGwNgr1NUpubLChHasr2z3z/spynl0fzT6rfrSpWQ5GdU1ge05kgqaLyhPg6YdPvl7cznQ8mLM3cFFEVwwW+wSzA6L7g/Lk5LbAVGZtqIsTKsg3G6IyNNR3rN31ZFycDsZ108DN9tN2XfxYRoDxX+3BBk00DVRUnaWiTX1qGj4qSrAciNMzkPkvlY4lVvSuR/WGAvuPLBBEnF8YBc+WdYedIHpabKb4Naefebo4/+QNs53gMjWY88jtfoG0eU3rN0f/v+eSDAAr/kcEG0PgBriURMG1VgxcuiRW2w28HaElLZp4zGQs3/5YONImHzebTk8kl8LMVIbatD6Zg6IMASKb+Ppnf56LLKIiWXPa6zXIrgEHpITkkEiQlGsbQsW7nDUIYit21+ziN0lvq/ciac7I0WkOd9vALEoBlBCmtGRZch2tk3pSaCECtFNV30xTzqaMTi7nikgIBKcgeJRyhusmFbXDhKhCB4iduVm6qXIgZcSYs+wOlo0Jdv8muQYODVUnnsxaksgTMZi7flfy2cVVCBeZZEk/3Ix21Oqm1UG0tV49fsdeL+9ZAOvRfpYsZibkjO1ZW5npyy5/Z4Q0n/ZCtfXstz/Twf4LLt6GGr1mFAe4KqJrFLu2SPS78N9ZYvonTdKflarxlPXo1BVvLBvoboQWAT15rUWWBgXxBFRdjUaHAB6UhbJUofsOrLIUutUS5SS2i3d7ua6e30gbfqITUB8LYoBbKX R35jK0Pf qjfhOOTqodJpq0pKGPlz3Ump4p4KKv9Hl+E/iMNiyhUh2FrbmgRn7XrdiAef44gk5zHo12cItnMuYO+MWOkbJr7rXsVhmR7w9+2smqzk/ta66ky/U2JMEXHXul3boqIgbhvrmpd55ZPXPGF7qWUe+7uEGqiUGzbNJJ5U//38kvMs/2agW9SzpoTfyLWd7nyev6jpXAGP1Pr9jt7c= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: >Hi Jaewon, > >Please use reply-all=21 > >I just realized my previous reply went off-list :( Oh I'm very sorry I didn't know that. I just found that I had sent the mail= to all as email secret recipient. > >On Fri, May 24, 2024 at 06:07:15PM +0900, Jaewon Kim wrote: >> >On Tue, May 21, 2024 at 07:17:53PM +0900, Jaewon Kim wrote: >> >> >On Tue, May 21, 2024 at 11:53:29AM +0900, Jaewon Kim wrote: >> >> >> >--------- Original Message --------- >> >> >> >Sender : =EA=B9=80=EC=9E=AC=EC=9B=90=20System=20Performance=20Lab.(MX)/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90=0D= =0A>>=20>>=20>>=20>Date=20=20=20:=202024-05-21=2011:40=20(GMT+9)=0D=0A>>=20= >>=20>>=20>Title=20=20:=20=5BRESEND=20PATCH=2000/10=5D=20memblock:=20introd= uce=20memsize=20showing=20reserved=20memory=0D=0A>>=20>>=20>>=20>?=0D=0A>>= =20>>=20>>=20>Some=20of=20memory=20regions=20can=20be=20reserved=20for=20a= =20specific=20purpose.=20They=20are=0D=0A>>=20>>=20>>=20>usually=20defined= =20through=20reserved-memory=20in=20device=20tree.=20If=20only=20size=0D=0A= >>=20>>=20>>=20>without=20address=20is=20specified=20in=20device=20tree,=20= the=20address=20of=20the=20region=0D=0A>>=20>>=20>>=20>will=20be=20determin= ed=20at=20boot=20time.=0D=0A>>=20>>=20>>=20>=0D=0A>>=20>>=20>>=20>We=20may= =20find=20the=20address=20of=20the=20memory=20regions=20through=20booting= =20log,=20but=0D=0A>>=20>>=20>>=20>it=20does=20not=20show=20all.=20And=20it= =20could=20be=20hard=20to=20catch=20the=20very=20beginning=0D=0A>>=20>>=20>= >=20>log.=20The=20memblock_dump_all=20shows=20all=20memblock=20status=20but= =20it=20does=20not=0D=0A>>=20>>=20>>=20>show=20region=20name=20and=20its=20= information=20is=20difficult=20to=20summarize.=0D=0A>>=20>>=20>>=20>=0D=0A>= >=20>>=20>>=20>This=20patch=20introduce=20a=20debugfs=20node,=20memblock/me= msize,=20to=20see=20reserved=0D=0A>>=20>>=20>>=20>memory=20easily.=0D=0A>>= =20>>=20>>=20=0D=0A>>=20>>=20>>=20This=20is=20actually=20RESEND=20as=20it= =20was=20introduced=202=20years=20ago.=0D=0A>>=20>>=20>>=20Please=20refer= =20to=20https://lore.kernel.org/linux-mm/YkQB6Ah603yPR3qf=40kernel.org/=23t= =0D=0A>>=20>>=20>>=20=0D=0A>>=20>>=20>>=20>=20But=20you=20never=20provided= =20details=20about=20*why*=20you=20want=20this=20information=20exposed.=0D= =0A>>=20>>=20>>=20=0D=0A>>=20>>=20>>=20For=20your=20question,=20I'd=20like= =20to=20say=20;=0D=0A>>=20>>=20>>=20We=20can=20see=20the=20same=20format=20= and=20exact=20information=20between=20different=20version=20of=20kernel=20s= tatus.=0D=0A>>=20>>=20>>=20=0D=0A>>=20>>=20>>=201)=20Internally=20we=20can= =20check=20if=20the=20reserved=20memory=20changes.=0D=0A>>=20>>=20>>=202)= =20Externally=20we=20can=20communicate=20between=20chipset=20vendors=20and= =20OEM,=20with=20a=20same=20format.=0D=0A>>=20>>=20>=0D=0A>>=20>>=20>Why=20= the=20existing=20debugfs=20interface=20is=20not=20sufficient?=0D=0A>>=20>>= =20=0D=0A>>=20>>=20debugfs/memblock/memory=20&=20debugfs/memblock/reserved= =20have=20changed=20its=0D=0A>>=20>>=20format=20but=20still=20does=20not=20= show=20name,=20reusable,=20kernel=20size.=20=20If=20memory=20is=0D=0A>>=20>= >=20reserved=20from=20memblock,=20and=20did=20not=20freed=20back=20to=20mem= block.=20Memblock=20does=0D=0A>>=20>>=20not=20know=20even=20after=20the=20m= emory=20is=20freed=20to=20system.=20=20I=20think=20a=20simple=0D=0A>>=20>>= =20debug=20interface=20is=20needed=20to=20easily=20communicate=20with=20oth= ers=20or=20compare=0D=0A>>=20>>=20different=20SW=20releases.=0D=0A>>=20>=0D= =0A>>=20>I=20still=20don't=20understand=20what=20problem=20are=20you=20tryi= ng=20to=20solve=20with=20these=0D=0A>>=20>patches.=20=0D=0A>>=20=0D=0A>>=20= I=20think=20we=20need=20a=20common=20API=20to=20easily=20see=20the=20reserv= ed=20memory=20status.=0D=0A>>=20Through=20MemTotal=20on=20/proc/meminfo,=20= we=20can=20only=20see=20only=20the=20total=20size=0D=0A>>=20of=20reserved= =20memory.=20We=20don't=20how=20big=20kernel=20init=20size=20within=20the= =20the=0D=0A>>=20total=20size.=20I=20think=20this=20really=20helps=20to=20c= ompare=20different=20kernel=20and=0D=0A>>=20communicate=20with=20others.=0D= =0A>=0D=0A>As=20was=20already=20mentioned=20on=20this=20thread,=20something= =20like=0D=0A>=0D=0A>=24=20dmesg=20=7C=20grep=20Memory:=0D=0A>=5B=20=20=20= =200.000000=5D=20Memory:=208058204K/8388608K=20available=20(35392K=20kernel= =20code,=208706K=20rwdata,=2023320K=20rodata,=2016832K=20init,=20848K=20bss= ,=20297636K=20reserved,=2032768K=20cma-reserved)=0D=0A>=0D=0A>already=20sho= ws=20init,=20rodata=20and=20bss=20sizes.=0D=0A>=0D=0A>And=20size=20-A=20vml= inux=20provides=20detailed=20breakdown=20of=20the=20kernel=20image=20into= =0D=0A>sections.=0D=0A>=20=0D=0A>>=20I=20think=20the=20debugfs=20API=20or= =20early=20boot=20log=20shows=20quite=20much=20information=0D=0A>>=20for=20= the=20reserved=20memory=20information=20defined=20in=20device=20tree.=20But= =20it=20is=0D=0A>>=20difficult=20to=20see=20after=20boot,=20as=20the=20boot= =20log=20already=20was=20removed=20ouf=20of=0D=0A>>=20the=20kernel=20log=20= buffer.=0D=0A>=0D=0A>Kernel=20log=20is=20persisted,=20isn't=20it?=0D=0A=0D= =0AEarly=20kernel=20log=20is=20removed=20after=20other=20log=20is=20written= =20to=20the=20log=20buffer.=20I=20may=0D=0Anot=20be=20able=20to=20get=20it,= =20after=20waiting=20for=20the=20target=20device=20is=20ready=20to=20be=0D= =0Aconnected=20from=20host=20PC.=20I=20wanted=20to=20keep=20that=20informat= ion.=0D=0A=0D=0AActually=20the=20commit=20aeb9267eb6b1=20(=22of:=20reserved= -mem:=20print=20out=20reserved-mem=0D=0Adetails=20during=20boot=22)=20seems= =20to=20show=20most=20of=20information=20if=20I=20can=20get=20the=20early= =0D=0Aboot=20log.=0D=0A=0D=0AIf=20you=20don't=20mind,=20let=20me=20ask=20on= e=20question.=20How=20can=20we=20easily=20find=20the=20undefined=0D=0ADRAM= =20memory=20regions=20in=20kernel=20persective.=20Do=20we=20have=20to=20loo= k=20into=20the=20debugfs=20=0D=0Amemblock/memory=20and=20combine=20the=20in= formation=20with=20the=20kernel=20log=20information?=0D=0A=0D=0Acase1)=20Ac= tual=20DRAM=20is=20mapped=20as=20two=20regions=20like,=0D=0A=20=20=202GB=20= =40=200x00000000_80000000=20and=206GB=20=40=200x00000008_80000000,=0D=0A=20= =20=20how=20can=20we=20find=20the=20hole,=200x00000000_80000000--0x00000008= _7FFFFFFF=20?=0D=0A=0D=0Acase2)=20If=20some=20region=20is=20already=20carve= d=20out=20at=20bootloader=20stage=20like.=0D=0A=20=20=200x00000000_81200000= -0x00000000_812FFFFF=20was=20not=20initinally=20on=20memblock.=0D=0A=20=20= =200x00000000_80000000-0x00000000_81200000=20was=20removed=20as=20no-map=20= through=20device=20tree.=0D=0A=20=20=20how=20can=20we=20find=20the=20hole,= =200x00000000_81200000-0x00000000_812FFFFF=20?=0D=0A=0D=0A>=0D=0A>>=20And= =20it=20does=20not=20show=20some=20information=20like=20kernel=20init=20siz= e,=20late=20free=0D=0A>>=20pages.=20AFAIK=20if=20some=20memblocks=20are=20m= erged=20to=20a=20memblock=20data=20structure,=0D=0A>>=20the=20debugfs=20mem= block=20API=20show=20it=20a=20one=20memblock=20rather=20than=20showing=20wh= at=0D=0A>>=20each=20memblock=20request.=0D=0A>=0D=0A>The=20reason=20to=20me= rge=20reserved=20regions=20is=20to=20save=20memory=20and=20CPU=20and=20in= =20vast=0D=0A>majority=20of=20cases=20it=20is=20not=20important=20from=20wh= ere=20memblock_reserve()=20was=0D=0A>called.=20If=20it's=20really=20importa= nt=20to=20keep=20some=20of=20the=20reservations=20distinct,=0D=0A>it=20can= =20be=20achieved=20by=20e.g.=20using=20.flags=20field=20in=20the=20reserved= =20regions.=0D=0A>=0D=0A>Your=20repost=20of=20the=20patches=20still=20does= =20not=20address=20my=20comment=20from=20two=0D=0A>years=20ago:=0D=0A>=0D= =0A>=09You=20propose=20complex=20mechanism=20that=20seems=20to=20fit=20very= =20particular=0D=0A>=09scenario=20and=20sprinkle=20some=20calls=20to=20this= =20mechanism=20at=20random=20places=0D=0A>=09because=20you=20need=20to=20= =22compare=20reserved=20memory=20map=20with=20other=20map=22.=0D=0A>=0D=0A>= As=20I=20said=20then,=20I=20don't=20mind=20providing=20more=20visibility=20= into=20reserved=20memory=0D=0A>attributes=20in=20general,=20but=20I'd=20lik= e=20to=20see=20something=20way=20more=20simple=20and=0D=0A>localized=20with= =20a=20clear=20description=20what=20problem=20it=20solves=20and=20how=20it= =20works=0D=0A>in=20a=20general=20case.=0D=0A>=20=0D=0A>>=20BR=0D=0A>>=20Ja= ewon=20Kim=0D=0A>=0D=0A>--=20=0D=0A>Sincerely=20yours,=0D=0A>Mike.