From mboxrd@z Thu Jan 1 00:00:00 1970 From: clemens.gruber@pqgruber.com (Clemens Gruber) Date: Thu, 02 Oct 2014 19:01:01 +0200 Subject: Implementing a driver that listen to a GPIO Message-ID: <542D84CD.70403@pqgruber.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Hi, I am just trying to solve a similar problem as Luca described. I have a TQMa28 board running Linux 3.17-rc7 though. The capacitors keep the system up for about 1500 more milliseconds after the power fails. A GPIO line is set to high as soon as the main power is lost. So I have not much time to quit an important user space process and to clean up the ext4 root filesystem before the power fails. At the moment I pass rootflags=data=journal,commit=1 in the kernel commandline to lower the risk of data loss. In the user space application I open important files using the O_SYNC flag. Is there something else I should do to avoid data loss? How would you implement the "emergency cleanup on power-failure" logic? Dedicated driver (similar to the mentioned gpio-event driver?), implement it with UIO, let a userspace application running as root select /dev/uioX and cleaning up? Or should I create a separate partition on my eMMC just for this user space application data and use a readonly rootfs for the rest? Thanks for your help! Best regards, Clemens