All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Get rid of cat and grep
@ 2009-06-05 11:56 Seewer Philippe
       [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
  0 siblings, 1 reply; 20+ messages in thread
From: Seewer Philippe @ 2009-06-05 11:56 UTC (permalink / raw)
  To: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

cat and grep just bloat the initrd, this patch removes dependencies on them.

---
 modules.d/40network/ifup             |    3 ++-
 modules.d/40network/install          |    2 +-
 modules.d/40network/kill-dhclient.sh |    4 +++-
 modules.d/95nbd/nbdroot              |   12 +-----------
 modules.d/95nfs/nfsroot              |   12 ++----------
 modules.d/95nfs/nfsroot-cleanup.sh   |    2 +-
 modules.d/99base/dracut-lib          |   14 ++++++++++++++
 7 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/modules.d/40network/ifup b/modules.d/40network/ifup
index 981a207..e347da5 100755
--- a/modules.d/40network/ifup
+++ b/modules.d/40network/ifup
@@ -100,7 +100,8 @@ if [ -z "$ip" ]; then
     do_dhcp;
 else
     # spin through the kernel command line, looking for ip= lines
-    for p in $(cat /proc/cmdline); do
+    [ "$CMDLINE" ] || read CMDLINE </proc/cmdline;
+    for p in $CMDLINE; do
 	[ -n "${p%ip=*}" ] && continue
 	ip_to_var ${p#ip=}
 	
diff --git a/modules.d/40network/install b/modules.d/40network/install
index d480391..3a06f79 100755
--- a/modules.d/40network/install
+++ b/modules.d/40network/install
@@ -1,5 +1,5 @@
 #!/bin/bash
-dracut_install ip dhclient hostname cat
+dracut_install ip dhclient hostname
 # Include wired net drivers, excluding wireless
 for modname in `find "/lib/modules/$kernel/kernel/drivers" -name '*.ko'`; do
   if nm -uPA $modname | grep -q eth_type_trans; then
diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/40network/kill-dhclient.sh
index fcebd32..54b3344 100755
--- a/modules.d/40network/kill-dhclient.sh
+++ b/modules.d/40network/kill-dhclient.sh
@@ -1,5 +1,7 @@
 #!/bin/sh
 
 for f in /tmp/dhclient.*.pid; do
-    [ -e $f ] && kill $(cat $f)
+    [ -e $f ] || continue
+    read PID < $f;
+    kill $PID;
 done
diff --git a/modules.d/95nbd/nbdroot b/modules.d/95nbd/nbdroot
index 1130cca..3475239 100755
--- a/modules.d/95nbd/nbdroot
+++ b/modules.d/95nbd/nbdroot
@@ -71,17 +71,7 @@ getarg ro && nbdrw=ro
 getarg rw && nbdrw=rw
 fsopts=${fsopts+$fsopts,}${nbdrw}
 
-if [ ! -e /tmp/nbd.present ]; then
-    cat /proc/devices | while read t1 devt; do
-	if [ "$devt" = "nbd" ]; then
-	    >/tmp/nfs.present
-	    break
-	fi
-    done
-fi
-if [ ! -e /tmp/nbd.present ]; then
-    modprobe nbd || exit 1
-fi
+incol2 /proc/devices nbd || modprobe nbd || exit 1
 
 # XXX better way to wait for the device to be made?
 i=0
diff --git a/modules.d/95nfs/nfsroot b/modules.d/95nfs/nfsroot
index 2d08b68..da002c5 100755
--- a/modules.d/95nfs/nfsroot
+++ b/modules.d/95nfs/nfsroot
@@ -46,16 +46,8 @@ getarg rw && nfsrw=rw
 nfsflags=${nfsflags+$nfsflags,}${nfsrw}
 
 # Load the modules so the filesystem type is there
-if [ ! -e /tmp/nfs.present ]; then
-    cat /proc/filesystems | while read t1 fst; do
-        case "$fst" in
-	    nfs|nfs4) >/tmp/nfs.present; break ;;
-	esac
-    done
-fi
-if [ ! -e /tmp/nfs.present ]; then
-    modprobe nfs || exit 1
-fi
+incol2 /proc/filesystems nfs  || modprobe nfs || exit 1
+incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1
 
 # XXX don't forget to move /var/lib/nfs/rpc_pipefs to new /
 
diff --git a/modules.d/95nfs/nfsroot-cleanup.sh b/modules.d/95nfs/nfsroot-cleanup.sh
index 4bfdd34..1a5f187 100644
--- a/modules.d/95nfs/nfsroot-cleanup.sh
+++ b/modules.d/95nfs/nfsroot-cleanup.sh
@@ -4,7 +4,7 @@ pid=$(pidof rpc.statd)
 pid=$(pidof rpcbind)
 [ -n "$pid" ] && kill $pid
 
-if grep -q rpc_pipefs /proc/mounts; then 
+if incol2 /proc/mounts /var/lib/nfs/rpc_pipefs; then 
     # try to create the destination directory
     [ -d $NEWROOT/var/lib/nfs/rpc_pipefs ] || mkdir -p $NEWROOT/var/lib/nfs/rpc_pipefs 2>/dev/null
 
diff --git a/modules.d/99base/dracut-lib b/modules.d/99base/dracut-lib
index e3f4794..07c1bc7 100644
--- a/modules.d/99base/dracut-lib
+++ b/modules.d/99base/dracut-lib
@@ -36,3 +36,17 @@ check_occurances() {
 
     [ $count -eq $expected ]
 }
+
+incol2() {
+    local dummy check;
+    local file="$1";
+    local str="$2";
+
+    [ -z "$file" ] && return;
+    [ -z "$str"  ] && return;
+
+    while read dummy check ; do
+	[ "$check" = "$str" ] && return 0
+    done < $file
+    return 1
+}

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
@ 2009-06-05 13:39   ` Harald Hoyer
       [not found]     ` <4A292005.4000404-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2009-06-05 14:43   ` David Dillow
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 20+ messages in thread
From: Harald Hoyer @ 2009-06-05 13:39 UTC (permalink / raw)
  To: Seewer Philippe; +Cc: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On 06/05/2009 01:56 PM, Seewer Philippe wrote:
...

> +incol2() {
> + local dummy check;
> + local file="$1";
> + local str="$2";
> +
> + [ -z "$file" ] && return;
> + [ -z "$str" ] && return;
> +
> + while read dummy check ; do
> + [ "$check" = "$str" ] && return 0
> + done < $file
> + return 1
> +}

This better has to be:

- while read dummy check ; do
+ while read dummy check restofline; do
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]     ` <4A292005.4000404-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2009-06-05 13:40       ` Seewer Philippe
  0 siblings, 0 replies; 20+ messages in thread
From: Seewer Philippe @ 2009-06-05 13:40 UTC (permalink / raw)
  To: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>



Harald Hoyer wrote:
> On 06/05/2009 01:56 PM, Seewer Philippe wrote:
> ...
> 
>> +incol2() {
>> + local dummy check;
>> + local file="$1";
>> + local str="$2";
>> +
>> + [ -z "$file" ] && return;
>> + [ -z "$str" ] && return;
>> +
>> + while read dummy check ; do
>> + [ "$check" = "$str" ] && return 0
>> + done < $file
>> + return 1
>> +}
> 
> This better has to be:
> 
> - while read dummy check ; do
> + while read dummy check restofline; do

Aye. copy/paste mistake. sorry about that


--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
  2009-06-05 13:39   ` Harald Hoyer
@ 2009-06-05 14:43   ` David Dillow
       [not found]     ` <1244213032.6963.1.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
  2009-06-05 15:58   ` Bill Nottingham
  2009-06-05 16:20   ` Victor Lowther
  3 siblings, 1 reply; 20+ messages in thread
From: David Dillow @ 2009-06-05 14:43 UTC (permalink / raw)
  To: Seewer Philippe; +Cc: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, 2009-06-05 at 13:56 +0200, Seewer Philippe wrote:
> cat and grep just bloat the initrd, this patch removes dependencies on them.

> +incol2 /proc/filesystems nfs  || modprobe nfs || exit 1
> +incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1

While I prefer the conditional list syntax, there has been push back on
IRC about using it. Consider if xxx then, ugly as it may be.
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]     ` <1244213032.6963.1.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
@ 2009-06-05 14:59       ` Harald Hoyer
  0 siblings, 0 replies; 20+ messages in thread
From: Harald Hoyer @ 2009-06-05 14:59 UTC (permalink / raw)
  To: David Dillow
  Cc: Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On 06/05/2009 04:43 PM, David Dillow wrote:
> On Fri, 2009-06-05 at 13:56 +0200, Seewer Philippe wrote:
>> cat and grep just bloat the initrd, this patch removes dependencies on them.
>
>> +incol2 /proc/filesystems nfs  || modprobe nfs || exit 1
>> +incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1
>
> While I prefer the conditional list syntax, there has been push back on
> IRC about using it. Consider if xxx then, ugly as it may be.

I would accept that style, but not:

cmd1 && { a; b; c; } || { d; e; f && { g; h; i;}}
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
  2009-06-05 13:39   ` Harald Hoyer
  2009-06-05 14:43   ` David Dillow
@ 2009-06-05 15:58   ` Bill Nottingham
       [not found]     ` <20090605155832.GH5107-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
  2009-06-05 16:20   ` Victor Lowther
  3 siblings, 1 reply; 20+ messages in thread
From: Bill Nottingham @ 2009-06-05 15:58 UTC (permalink / raw)
  To: Seewer Philippe; +Cc: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Seewer Philippe (philippe.seewer-omB+W0Dpw2o@public.gmane.org) said: 
> cat and grep just bloat the initrd, this patch removes dependencies on them.

Are we really at a place where we're that worried about 100k? I'd
rather not have to implement all of coreutils in shell where needed.

Bill
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]     ` <20090605155832.GH5107-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
@ 2009-06-05 16:03       ` Warren Togami
       [not found]         ` <4A2941CD.1070709-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2009-06-05 16:16       ` Victor Lowther
  1 sibling, 1 reply; 20+ messages in thread
From: Warren Togami @ 2009-06-05 16:03 UTC (permalink / raw)
  To: Bill Nottingham
  Cc: Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On 06/05/2009 11:58 AM, Bill Nottingham wrote:
> Seewer Philippe (philippe.seewer-omB+W0Dpw2o@public.gmane.org) said:
>> cat and grep just bloat the initrd, this patch removes dependencies on them.
>
> Are we really at a place where we're that worried about 100k? I'd
> rather not have to implement all of coreutils in shell where needed.
>

I'm not too happy about this, additionally because it made the code less 
readable.  But he already pushed it to git.

Warren
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]     ` <20090605155832.GH5107-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
  2009-06-05 16:03       ` Warren Togami
@ 2009-06-05 16:16       ` Victor Lowther
       [not found]         ` <E0B0F7E0-7880-4219-AE91-B7305665424D-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  1 sibling, 1 reply; 20+ messages in thread
From: Victor Lowther @ 2009-06-05 16:16 UTC (permalink / raw)
  To: Bill Nottingham
  Cc: Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Jun 5, 2009, at 10:58 AM, Bill Nottingham <notting-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:

> Seewer Philippe (philippe.seewer-omB+W0Dpw2o@public.gmane.org) said:
>> cat and grep just bloat the initrd, this patch removes dependencies  
>> on them.
>
> Are we really at a place where we're that worried about 100k? I'd
> rather not have to implement all of coreutils in shell where needed.

People have this crazy fetish with booting fast.

>
> Bill
> --
> To unsubscribe from this list: send the line "unsubscribe initramfs"  
> in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
                     ` (2 preceding siblings ...)
  2009-06-05 15:58   ` Bill Nottingham
@ 2009-06-05 16:20   ` Victor Lowther
       [not found]     ` <8E821C8B-E7E8-4F71-ACCF-872B463AE3FF-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  3 siblings, 1 reply; 20+ messages in thread
From: Victor Lowther @ 2009-06-05 16:20 UTC (permalink / raw)
  To: Seewer Philippe; +Cc: <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Why not just reimplement cat in sed?

cat() {
     for x in "$@"; do
         sed s/,/,/ < "$1"
     done
}

On Jun 5, 2009, at 6:56 AM, Seewer Philippe <philippe.seewer-omB+W0Dpw2o@public.gmane.org>  
wrote:

> cat and grep just bloat the initrd, this patch removes dependencies  
> on them.
>
> ---
> modules.d/40network/ifup             |    3 ++-
> modules.d/40network/install          |    2 +-
> modules.d/40network/kill-dhclient.sh |    4 +++-
> modules.d/95nbd/nbdroot              |   12 +-----------
> modules.d/95nfs/nfsroot              |   12 ++----------
> modules.d/95nfs/nfsroot-cleanup.sh   |    2 +-
> modules.d/99base/dracut-lib          |   14 ++++++++++++++
> 7 files changed, 24 insertions(+), 25 deletions(-)
>
> diff --git a/modules.d/40network/ifup b/modules.d/40network/ifup
> index 981a207..e347da5 100755
> --- a/modules.d/40network/ifup
> +++ b/modules.d/40network/ifup
> @@ -100,7 +100,8 @@ if [ -z "$ip" ]; then
>    do_dhcp;
> else
>    # spin through the kernel command line, looking for ip= lines
> -    for p in $(cat /proc/cmdline); do
> +    [ "$CMDLINE" ] || read CMDLINE </proc/cmdline;
> +    for p in $CMDLINE; do
>    [ -n "${p%ip=*}" ] && continue
>    ip_to_var ${p#ip=}
>
> diff --git a/modules.d/40network/install b/modules.d/40network/install
> index d480391..3a06f79 100755
> --- a/modules.d/40network/install
> +++ b/modules.d/40network/install
> @@ -1,5 +1,5 @@
> #!/bin/bash
> -dracut_install ip dhclient hostname cat
> +dracut_install ip dhclient hostname
> # Include wired net drivers, excluding wireless
> for modname in `find "/lib/modules/$kernel/kernel/drivers" -name  
> '*.ko'`; do
>  if nm -uPA $modname | grep -q eth_type_trans; then
> diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/ 
> 40network/kill-dhclient.sh
> index fcebd32..54b3344 100755
> --- a/modules.d/40network/kill-dhclient.sh
> +++ b/modules.d/40network/kill-dhclient.sh
> @@ -1,5 +1,7 @@
> #!/bin/sh
> for f in /tmp/dhclient.*.pid; do
> -    [ -e $f ] && kill $(cat $f)
> +    [ -e $f ] || continue
> +    read PID < $f;
> +    kill $PID;
> done
> diff --git a/modules.d/95nbd/nbdroot b/modules.d/95nbd/nbdroot
> index 1130cca..3475239 100755
> --- a/modules.d/95nbd/nbdroot
> +++ b/modules.d/95nbd/nbdroot
> @@ -71,17 +71,7 @@ getarg ro && nbdrw=ro
> getarg rw && nbdrw=rw
> fsopts=${fsopts+$fsopts,}${nbdrw}
> -if [ ! -e /tmp/nbd.present ]; then
> -    cat /proc/devices | while read t1 devt; do
> -    if [ "$devt" = "nbd" ]; then
> -        >/tmp/nfs.present
> -        break
> -    fi
> -    done
> -fi
> -if [ ! -e /tmp/nbd.present ]; then
> -    modprobe nbd || exit 1
> -fi
> +incol2 /proc/devices nbd || modprobe nbd || exit 1
> # XXX better way to wait for the device to be made?
> i=0
> diff --git a/modules.d/95nfs/nfsroot b/modules.d/95nfs/nfsroot
> index 2d08b68..da002c5 100755
> --- a/modules.d/95nfs/nfsroot
> +++ b/modules.d/95nfs/nfsroot
> @@ -46,16 +46,8 @@ getarg rw && nfsrw=rw
> nfsflags=${nfsflags+$nfsflags,}${nfsrw}
> # Load the modules so the filesystem type is there
> -if [ ! -e /tmp/nfs.present ]; then
> -    cat /proc/filesystems | while read t1 fst; do
> -        case "$fst" in
> -        nfs|nfs4) >/tmp/nfs.present; break ;;
> -    esac
> -    done
> -fi
> -if [ ! -e /tmp/nfs.present ]; then
> -    modprobe nfs || exit 1
> -fi
> +incol2 /proc/filesystems nfs  || modprobe nfs || exit 1
> +incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1
> # XXX don't forget to move /var/lib/nfs/rpc_pipefs to new /
> diff --git a/modules.d/95nfs/nfsroot-cleanup.sh b/modules.d/95nfs/ 
> nfsroot-cleanup.sh
> index 4bfdd34..1a5f187 100644
> --- a/modules.d/95nfs/nfsroot-cleanup.sh
> +++ b/modules.d/95nfs/nfsroot-cleanup.sh
> @@ -4,7 +4,7 @@ pid=$(pidof rpc.statd)
> pid=$(pidof rpcbind)
> [ -n "$pid" ] && kill $pid
> -if grep -q rpc_pipefs /proc/mounts; then +if incol2 /proc/mounts / 
> var/lib/nfs/rpc_pipefs; then     # try to create the destination  
> directory
>    [ -d $NEWROOT/var/lib/nfs/rpc_pipefs ] || mkdir -p $NEWROOT/var/ 
> lib/nfs/rpc_pipefs 2>/dev/null
> diff --git a/modules.d/99base/dracut-lib b/modules.d/99base/dracut-lib
> index e3f4794..07c1bc7 100644
> --- a/modules.d/99base/dracut-lib
> +++ b/modules.d/99base/dracut-lib
> @@ -36,3 +36,17 @@ check_occurances() {
>    [ $count -eq $expected ]
> }
> +
> +incol2() {
> +    local dummy check;
> +    local file="$1";
> +    local str="$2";
> +
> +    [ -z "$file" ] && return;
> +    [ -z "$str"  ] && return;
> +
> +    while read dummy check ; do
> +    [ "$check" = "$str" ] && return 0
> +    done < $file
> +    return 1
> +}
>
> --
> To unsubscribe from this list: send the line "unsubscribe initramfs"  
> in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]         ` <E0B0F7E0-7880-4219-AE91-B7305665424D-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-06-05 16:38           ` Bill Nottingham
       [not found]             ` <20090605163828.GA7041-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
  0 siblings, 1 reply; 20+ messages in thread
From: Bill Nottingham @ 2009-06-05 16:38 UTC (permalink / raw)
  To: Victor Lowther
  Cc: Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Victor Lowther (victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org) said: 
>> Are we really at a place where we're that worried about 100k? I'd
>> rather not have to implement all of coreutils in shell where needed.
>
> People have this crazy fetish with booting fast.

And implementing grep in shell makes it faster? It may be, but
that's certainly not a given. Moreover, I wouldn't be surprised
if eventually the udev rules or the initramfs will need something
that's not practical to do with 'while read foo'.

Bill
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]             ` <20090605163828.GA7041-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
@ 2009-06-05 16:46               ` Harald Hoyer
  2009-06-05 16:51               ` David Dillow
  1 sibling, 0 replies; 20+ messages in thread
From: Harald Hoyer @ 2009-06-05 16:46 UTC (permalink / raw)
  To: Bill Nottingham
  Cc: Victor Lowther, Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On 06/05/2009 06:38 PM, Bill Nottingham wrote:
> Victor Lowther (victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org) said:
>>> Are we really at a place where we're that worried about 100k? I'd
>>> rather not have to implement all of coreutils in shell where needed.
>> People have this crazy fetish with booting fast.
>
> And implementing grep in shell makes it faster? It may be, but
> that's certainly not a given. Moreover, I wouldn't be surprised
> if eventually the udev rules or the initramfs will need something
> that's not practical to do with 'while read foo'.
>
> Bill


Please stop the discussion, this patch was not making things _that_ unreadable 
and is not _that_ bad.

Sure, if we have to do things in shell which really look ugly and we have a tool 
for it, better copy over the tool.

Now back to real work and real problems :)
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]     ` <8E821C8B-E7E8-4F71-ACCF-872B463AE3FF-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-06-05 16:49       ` David Dillow
  0 siblings, 0 replies; 20+ messages in thread
From: David Dillow @ 2009-06-05 16:49 UTC (permalink / raw)
  To: Victor Lowther
  Cc: Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, 2009-06-05 at 11:20 -0500, Victor Lowther wrote:
> Why not just reimplement cat in sed?
> 
> cat() {
>      for x in "$@"; do
>          sed s/,/,/ < "$1"
>      done
> }

or shell:

cat() {
	local line
	while [ -n "$1" ]; do
		while read line; do
			echo "$line"
		done < "$1"
		shift
	done
}
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]             ` <20090605163828.GA7041-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
  2009-06-05 16:46               ` Harald Hoyer
@ 2009-06-05 16:51               ` David Dillow
  1 sibling, 0 replies; 20+ messages in thread
From: David Dillow @ 2009-06-05 16:51 UTC (permalink / raw)
  To: Bill Nottingham
  Cc: Victor Lowther, Seewer Philippe,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, 2009-06-05 at 12:38 -0400, Bill Nottingham wrote:
> Victor Lowther (victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org) said: 
> >> Are we really at a place where we're that worried about 100k? I'd
> >> rather not have to implement all of coreutils in shell where needed.
> >
> > People have this crazy fetish with booting fast.
> 
> And implementing grep in shell makes it faster? It may be, but
> that's certainly not a given. Moreover, I wouldn't be surprised
> if eventually the udev rules or the initramfs will need something
> that's not practical to do with 'while read foo'.

Implementing it in shell isn't a huge speed change either way I'll wager
-- well, maybe with fork + exec costs -- but when you have 200+ clients
boot and pull the initramfs at the same time, smaller is better.

Granted, 100k savings here isn't much, but small savings add up. The big
gains will be from fixing up all the extra modules we load into the
image...
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]         ` <4A2941CD.1070709-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2009-06-05 18:11           ` Seewer Philippe
       [not found]             ` <4A295FB4.6020306-omB+W0Dpw2o@public.gmane.org>
  0 siblings, 1 reply; 20+ messages in thread
From: Seewer Philippe @ 2009-06-05 18:11 UTC (permalink / raw)
  To: Warren Togami
  Cc: Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>



Warren Togami wrote:
> On 06/05/2009 11:58 AM, Bill Nottingham wrote:
>> Seewer Philippe (philippe.seewer-omB+W0Dpw2o@public.gmane.org) said:
>>> cat and grep just bloat the initrd, this patch removes dependencies 
>>> on them.
>>
>> Are we really at a place where we're that worried about 100k? I'd
>> rather not have to implement all of coreutils in shell where needed.
>>
> 
> I'm not too happy about this, additionally because it made the code less 
> readable.  But he already pushed it to git.

Ah well... I guess I'll label it an rfc patch next time I post something 
like that.

When I was going through the code this morning I just noticed that cat 
was used only 4 times and grep just once. Personally I prefer to keep 
the number of pulled in utilities as small as possible. Hence the 
replacement. If you don't like the way I did it, please suggest 
something else.

Regards,
Philippe
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]             ` <4A295FB4.6020306-omB+W0Dpw2o@public.gmane.org>
@ 2009-06-05 18:21               ` Dave Jones
       [not found]                 ` <20090605182106.GA26921-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 20+ messages in thread
From: Dave Jones @ 2009-06-05 18:21 UTC (permalink / raw)
  To: Seewer Philippe
  Cc: Warren Togami, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, Jun 05, 2009 at 08:11:00PM +0200, Seewer Philippe wrote:
 > 
 > 
 > Warren Togami wrote:
 > > On 06/05/2009 11:58 AM, Bill Nottingham wrote:
 > >> Seewer Philippe (philippe.seewer-omB+W0Dpw2o@public.gmane.org) said:
 > >>> cat and grep just bloat the initrd, this patch removes dependencies 
 > >>> on them.
 > >>
 > >> Are we really at a place where we're that worried about 100k? I'd
 > >> rather not have to implement all of coreutils in shell where needed.
 > >>
 > > 
 > > I'm not too happy about this, additionally because it made the code less 
 > > readable.  But he already pushed it to git.
 > 
 > Ah well... I guess I'll label it an rfc patch next time I post something 
 > like that.
 > 
 > When I was going through the code this morning I just noticed that cat 
 > was used only 4 times and grep just once. Personally I prefer to keep 
 > the number of pulled in utilities as small as possible. Hence the 
 > replacement. If you don't like the way I did it, please suggest 
 > something else.

Just because the scripts don't use it, doesn't mean it doesn't have
value in the initramfs.  Being dropped to a rescue shell and not
being able to cat files for diagnostics is sort of annoying.

	Dave

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]                 ` <20090605182106.GA26921-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2009-06-05 18:23                   ` Warren Togami
  2009-06-05 18:37                   ` David Dillow
  1 sibling, 0 replies; 20+ messages in thread
From: Warren Togami @ 2009-06-05 18:23 UTC (permalink / raw)
  To: Dave Jones
  Cc: Seewer Philippe, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On 06/05/2009 02:21 PM, Dave Jones wrote:
> Just because the scripts don't use it, doesn't mean it doesn't have
> value in the initramfs.  Being dropped to a rescue shell and not
> being able to cat files for diagnostics is sort of annoying.

Agreed.

Warren
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]                 ` <20090605182106.GA26921-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  2009-06-05 18:23                   ` Warren Togami
@ 2009-06-05 18:37                   ` David Dillow
       [not found]                     ` <1244227068.6963.37.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
  1 sibling, 1 reply; 20+ messages in thread
From: David Dillow @ 2009-06-05 18:37 UTC (permalink / raw)
  To: Dave Jones
  Cc: Seewer Philippe, Warren Togami, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, 2009-06-05 at 14:21 -0400, Dave Jones wrote:
> Just because the scripts don't use it, doesn't mean it doesn't have
> value in the initramfs.  Being dropped to a rescue shell and not
> being able to cat files for diagnostics is sort of annoying.

So build cat as a shell function :)

More seriously, I agree it is helpful to have some tools available when
trying to debug, or develop dracut. But when I move this into production
in a cluster here, I'm going to want my image as lean as I can get it.

What do you think of making a module, say 99useful-tools, what installs
various tools that would be helpful, and have it installed by default.
That way, it is easy to have the best of both worlds.
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]                     ` <1244227068.6963.37.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
@ 2009-06-05 18:45                       ` Victor Lowther
       [not found]                         ` <759A4D42-1B71-438B-A361-4CFCB6E289E7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2009-06-05 19:37                       ` Seewer Philippe
  1 sibling, 1 reply; 20+ messages in thread
From: Victor Lowther @ 2009-06-05 18:45 UTC (permalink / raw)
  To: David Dillow
  Cc: Dave Jones, Seewer Philippe, Warren Togami, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Jun 5, 2009, at 1:37 PM, David Dillow <dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org> wrote:

> On Fri, 2009-06-05 at 14:21 -0400, Dave Jones wrote:
>> Just because the scripts don't use it, doesn't mean it doesn't have
>> value in the initramfs.  Being dropped to a rescue shell and not
>> being able to cat files for diagnostics is sort of annoying.
>
> So build cat as a shell function :)
>
> More seriously, I agree it is helpful to have some tools available  
> when
> trying to debug, or develop dracut. But when I move this into  
> production
> in a cluster here, I'm going to want my image as lean as I can get it.
>
> What do you think of making a module, say 99useful-tools, what  
> installs
> various tools that would be helpful, and have it installed by default.
> That way, it is easy to have the best of both worlds.


That is what the much neglected 95debug module is for.
>
> --
> To unsubscribe from this list: send the line "unsubscribe initramfs"  
> in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]                         ` <759A4D42-1B71-438B-A361-4CFCB6E289E7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-06-05 18:57                           ` David Dillow
  0 siblings, 0 replies; 20+ messages in thread
From: David Dillow @ 2009-06-05 18:57 UTC (permalink / raw)
  To: Victor Lowther
  Cc: Dave Jones, Seewer Philippe, Warren Togami, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

On Fri, 2009-06-05 at 13:45 -0500, Victor Lowther wrote:
> On Jun 5, 2009, at 1:37 PM, David Dillow <dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org> wrote:
> > What do you think of making a module, say 99useful-tools, what  
> > installs
> > various tools that would be helpful, and have it installed by default.
> > That way, it is easy to have the best of both worlds.
>
> That is what the much neglected 95debug module is for.

Now if people would just use it. :)
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Get rid of cat and grep
       [not found]                     ` <1244227068.6963.37.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
  2009-06-05 18:45                       ` Victor Lowther
@ 2009-06-05 19:37                       ` Seewer Philippe
  1 sibling, 0 replies; 20+ messages in thread
From: Seewer Philippe @ 2009-06-05 19:37 UTC (permalink / raw)
  To: David Dillow
  Cc: Dave Jones, Warren Togami, Bill Nottingham,
	<initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>



David Dillow wrote:
> On Fri, 2009-06-05 at 14:21 -0400, Dave Jones wrote:
>> Just because the scripts don't use it, doesn't mean it doesn't have
>> value in the initramfs.  Being dropped to a rescue shell and not
>> being able to cat files for diagnostics is sort of annoying.
> 
> So build cat as a shell function :)
> 
> More seriously, I agree it is helpful to have some tools available when
> trying to debug, or develop dracut. But when I move this into production
> in a cluster here, I'm going to want my image as lean as I can get it.
> 
> What do you think of making a module, say 99useful-tools, what installs
> various tools that would be helpful, and have it installed by default.
> That way, it is easy to have the best of both worlds.

Not quite. Since 99useful-tools (or 95debug come to that) would have to 
be pulled in as a dependency if your module-scripts use tools from there.

debugging on the console: yes, I agree completely. Inside scripts: 
Please use only if there's no other (readable) way.
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2009-06-05 19:37 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-05 11:56 [PATCH] Get rid of cat and grep Seewer Philippe
     [not found] ` <4A2907E7.1080008-omB+W0Dpw2o@public.gmane.org>
2009-06-05 13:39   ` Harald Hoyer
     [not found]     ` <4A292005.4000404-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-05 13:40       ` Seewer Philippe
2009-06-05 14:43   ` David Dillow
     [not found]     ` <1244213032.6963.1.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
2009-06-05 14:59       ` Harald Hoyer
2009-06-05 15:58   ` Bill Nottingham
     [not found]     ` <20090605155832.GH5107-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
2009-06-05 16:03       ` Warren Togami
     [not found]         ` <4A2941CD.1070709-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-05 18:11           ` Seewer Philippe
     [not found]             ` <4A295FB4.6020306-omB+W0Dpw2o@public.gmane.org>
2009-06-05 18:21               ` Dave Jones
     [not found]                 ` <20090605182106.GA26921-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-05 18:23                   ` Warren Togami
2009-06-05 18:37                   ` David Dillow
     [not found]                     ` <1244227068.6963.37.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
2009-06-05 18:45                       ` Victor Lowther
     [not found]                         ` <759A4D42-1B71-438B-A361-4CFCB6E289E7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-06-05 18:57                           ` David Dillow
2009-06-05 19:37                       ` Seewer Philippe
2009-06-05 16:16       ` Victor Lowther
     [not found]         ` <E0B0F7E0-7880-4219-AE91-B7305665424D-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-06-05 16:38           ` Bill Nottingham
     [not found]             ` <20090605163828.GA7041-Zdt1ptygihhQcNjhGXsBABcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
2009-06-05 16:46               ` Harald Hoyer
2009-06-05 16:51               ` David Dillow
2009-06-05 16:20   ` Victor Lowther
     [not found]     ` <8E821C8B-E7E8-4F71-ACCF-872B463AE3FF-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-06-05 16:49       ` David Dillow

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.