Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

ZSH "killing" sdcard/flash memory...



Hi,

I setup an embedded system (http://www.acmesystems.it/arietta) with
Gentoo Linux and zsh (of course! :).

The "harddisk" of this system is a sdcard (flash memory).

The amount of write cycles to a flash memory is limited. 
Therefore one is interested in reducing unneccessary writes
to the filesystem.

I use ext4 (with journaling) with my Arietta G25 board, because
powerfailure is more likely (battery powered) than with other
systems.

BUT:
Logging /sys/fs/ext4/mmcblk0p2/session_write_kbytes shows that
there were a greater amount of writes, even if the system was
totally idle (I was logged in though, but doesn't touch the
keyboard).

I took me quite some time to figure out that the process "guilty" ;)
for that was....zsh! Or better: The history mechanism of zsh.

I temporarily switched off history writing and...no writes to the
fs anymore.

I think (read: I dont know for sure...:)) what happens is this:
The actual process, which do the physical updates to the filesystem
on the flash is call jbd2, which is the journal handling process
of the kernel.
Everytime something is happen to the filesystem this process keeps
the journals up to date.

The process, which triggers jbd2 "to do something" is the history
mechanism of zsh.

But I _NEED_ the history mechanism...I will get lost of it...or
I have to write a ***lot*** more scripts...so switching it off
is not a real alternative.

Long story...short questions:
What is it, what makes the history mechanism of zsh constantly
"doing something" (closing/opening, writing, time stamping,
etc...anything what is filesystem related) with the filesystem, even
if there is no commandline to record?

How can I switch that off without lossing the history mechanism
itsselg?

If it is "inside zsh" I would like to propose to make zsh more
embedded-system-friendly by takeing flash memories in account.

What do you think?

Best regards,
Meino






Messages sorted by: Reverse Date, Date, Thread, Author