Preparing for the next release: call for testing
Gabriel Laskar
gabriel at lse.epita.fr
Tue Mar 3 18:23:28 UTC 2015
On Wed, 25 Feb 2015 05:12:57 +0300
"Dmitry V. Levin" <ldv at altlinux.org> wrote:
> I think it's time to cut a new release.
> If you have pending patches to include before the release,
> please submit them now.
There is still an issue with ioctl request names when using strace on
Binder calls. Some binder calls have 2 possible sizes, depending of being
with the 32-bit api or the 64-bit one.
In <linux/android/binder.h>, there is a #ifdef BINDER_IPC_32BIT that
control the size of pointer values in the structures.
In 64bit mode, we have only :
ioctl(-1, BC_REQUEST_DEATH_NOTIFICATION, 0);
ioctl(-1, BC_CLEAR_DEATH_NOTIFICATION, 0);
that respond :
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x0e, 0x10), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x0f, 0x10), 0) = -1 EBADF (Bad file descriptor)
and when asking for 32bit binder (BINDER_IPC_32BIT), lots of ioctls are failing :
#define BINDER_IPC_32BIT
#include "binder.h"
void android32()
{
ioctl(-1, BINDER_WRITE_READ, 0);
ioctl(-1, BINDER_SET_IDLE_TIMEOUT, 0);
ioctl(-1, BINDER_SET_MAX_THREADS, 0);
ioctl(-1, BINDER_SET_IDLE_PRIORITY, 0);
ioctl(-1, BINDER_SET_CONTEXT_MGR, 0);
ioctl(-1, BINDER_THREAD_EXIT, 0);
ioctl(-1, BINDER_VERSION, 0);
ioctl(-1, BR_OK, 0);
ioctl(-1, BR_TRANSACTION, 0);
ioctl(-1, BR_REPLY, 0);
ioctl(-1, BR_ACQUIRE_RESULT, 0);
ioctl(-1, BR_DEAD_REPLY, 0);
ioctl(-1, BR_TRANSACTION_COMPLETE, 0);
ioctl(-1, BR_INCREFS, 0);
ioctl(-1, BR_ACQUIRE, 0);
ioctl(-1, BR_RELEASE, 0);
ioctl(-1, BR_DECREFS, 0);
ioctl(-1, BR_ATTEMPT_ACQUIRE, 0);
ioctl(-1, BR_NOOP, 0);
ioctl(-1, BR_SPAWN_LOOPER, 0);
ioctl(-1, BR_FINISHED, 0);
ioctl(-1, BR_DEAD_BINDER, 0);
ioctl(-1, BR_CLEAR_DEATH_NOTIFICATION_DONE, 0);
ioctl(-1, BR_FAILED_REPLY, 0);
ioctl(-1, BC_TRANSACTION, 0);
ioctl(-1, BC_REPLY, 0);
ioctl(-1, BC_ACQUIRE_RESULT, 0);
ioctl(-1, BC_FREE_BUFFER, 0);
ioctl(-1, BC_INCREFS, 0);
ioctl(-1, BC_ACQUIRE, 0);
ioctl(-1, BC_RELEASE, 0);
ioctl(-1, BC_DECREFS, 0);
ioctl(-1, BC_INCREFS_DONE, 0);
ioctl(-1, BC_ACQUIRE_DONE, 0);
ioctl(-1, BC_ATTEMPT_ACQUIRE, 0);
ioctl(-1, BC_REGISTER_LOOPER, 0);
ioctl(-1, BC_ENTER_LOOPER, 0);
ioctl(-1, BC_EXIT_LOOPER, 0);
ioctl(-1, BC_REQUEST_DEATH_NOTIFICATION, 0);
ioctl(-1, BC_CLEAR_DEATH_NOTIFICATION, 0);
ioctl(-1, BC_DEAD_BINDER_DONE, 0);
}
outputs :
ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x62, 0x01, 0x18), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_SET_IDLE_TIMEOUT, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_SET_MAX_THREADS, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_SET_IDLE_PRIORITY, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_SET_CONTEXT_MGR, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_THREAD_EXIT, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BINDER_VERSION, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_OK, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x02, 0x28), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x03, 0x28), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_ACQUIRE_RESULT, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_DEAD_REPLY, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_TRANSACTION_COMPLETE, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x07, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x08, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x09, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x0a, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x0b, 0x0c), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_NOOP, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_SPAWN_LOOPER, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_FINISHED, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_READ, 0x72, 0x0f, 0x04), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, FAT_IOCTL_GET_ATTRIBUTES, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BR_FAILED_REPLY, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x00, 0x28), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x01, 0x28), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_ACQUIRE_RESULT, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x03, 0x04), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_INCREFS, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_ACQUIRE or CHIOSPICKER, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_RELEASE, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_DECREFS, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x08, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x09, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_ATTEMPT_ACQUIRE, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_REGISTER_LOOPER, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_ENTER_LOOPER, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, BC_EXIT_LOOPER, 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x0e, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x0f, 0x08), 0) = -1 EBADF (Bad file descriptor)
ioctl(-1, _IOC(_IOC_WRITE, 0x63, 0x10, 0x04), 0) = -1 EBADF (Bad file descriptor)
--
Gabriel Laskar
More information about the Strace-devel
mailing list