{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":43942363,"defaultBranch":"master","name":"devlib","ownerLogin":"ARM-software","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-10-09T08:22:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5690313?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1653411325.175852","currentOid":""},"activityList":{"items":[{"before":"ce02f8695fa1c8a995aa56a5ad6c76c5734e6660","after":"7276097d4e12ff2b3cfa1bb0ba40cee24ae3372b","ref":"refs/heads/master","pushedAt":"2024-04-24T15:04:09.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Make default modules list empty\n\nDefault modules are a recurrent source of errors as they fail to\ninitialize (cgroups particularly) on any recent target. This leads to\nerror in basically any workload-automation setup on Android 12 and\nabove targets.\n\nSince modules can now be lazily loaded upon Target attribute access,\nthere is no reason to preload those anymore.","shortMessageHtmlLink":"target: Make default modules list empty"}},{"before":"b5f311feff5e324e410fc2627837439853c8a621","after":"ce02f8695fa1c8a995aa56a5ad6c76c5734e6660","ref":"refs/heads/master","pushedAt":"2024-04-18T19:01:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"Add missing import","shortMessageHtmlLink":"Add missing import"}},{"before":"28b30649f136c498df1a7ddf4b56af78df821331","after":"b5f311feff5e324e410fc2627837439853c8a621","ref":"refs/heads/master","pushedAt":"2024-04-01T19:02:38.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"tools/docker: Add Docker image support for devlib\n\nIntroduce a Dockerfile in order to create Docker image for devlib and\n``run_tests.sh`` script to test Android, Linux, LocalLinux, and QEMU\ntargets on the Docker image.\n\nThe Dockerfile forks from ``Ubuntu-22.04``, installs required system\npackages, checks out ``master`` branch of devlib, installs devlib,\ncreates Android virtual devices via ``tools/android/install_base.sh``,\nand QEMU images for aarch64 and x86_84 architectures.\n\nNote that Android command line tools version, buildroot and devlib\nbranches can be customized via environment variables.\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"tools/docker: Add Docker image support for devlib"}},{"before":"5817866ad093b8cce2d7527c42dc9cba4557a76a","after":"28b30649f136c498df1a7ddf4b56af78df821331","ref":"refs/heads/master","pushedAt":"2024-03-29T01:04:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"utils/ssh: Fix atexit.register() SshConnection leak\n\nSshConnection registers an atexit handler so the connection is closed\nupon exiting the process if it has not been done before. However, the\nhandler keeps a reference on the connection, which means it _will_ stay\nalive. If lots of short-lived connections are created (which can happen\nwhen using e.g. ThreadPoolExecutor), they will simply stay around and\nleak.\n\nFix that by using a weak reference (WeakMethod) to register in the\natexit handler, with a callback to unregister it when the object is\ndeallocated.","shortMessageHtmlLink":"utils/ssh: Fix atexit.register() SshConnection leak"}},{"before":"8247ac91e7ce194667c114b972ff67a08d5d91f1","after":"5817866ad093b8cce2d7527c42dc9cba4557a76a","ref":"refs/heads/master","pushedAt":"2024-03-29T01:04:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"Fixed issue where non-consecutive list resulted in incorrect ranges\n\nFor example if `[3,1,2]` was provided, it would result in `3,1-2`, but after writing this to a sysfs file, it would read back as `1-3`","shortMessageHtmlLink":"Fixed issue where non-consecutive list resulted in incorrect ranges"}},{"before":"228baeb317a038b8e61a7d9c7710e6f13b0f7163","after":"8247ac91e7ce194667c114b972ff67a08d5d91f1","ref":"refs/heads/master","pushedAt":"2024-03-29T01:03:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"Add option not to validate PMU counters.\n\nThe validation call can take a long for targets where PLL:s have\nbeen clocked down, such as FPGAs.","shortMessageHtmlLink":"Add option not to validate PMU counters."}},{"before":"598c0c1d3cba98b2e463f9bcf356952d4d806b21","after":"228baeb317a038b8e61a7d9c7710e6f13b0f7163","ref":"refs/heads/master","pushedAt":"2024-03-20T12:16:12.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Implement target runner classes\n\nAdd support for launching emulated targets on QEMU. The base class\n``TargetRunner`` has groundwork for target runners like\n``QEMUTargetRunner``.\n\n``TargetRunner`` is a contextmanager which starts runner process (e.g.,\nQEMU), makes sure the target is accessible over SSH (if\n``connect=True``), and terminates the runner process once it's done.\n\nThe other newly introduced ``QEMUTargetRunner`` class:\n- performs sanity checks to ensure QEMU executable, kernel, and initrd\n images exist,\n- builds QEMU parameters properly,\n- creates ``Target`` object,\n- and lets ``TargetRunner`` manage the QEMU instance.\n\nAlso add a new test case in ``tests/test_target.py`` to ensure devlib\ncan run a QEMU target and execute some basic commands on it.\n\nWhile we are in neighborhood, fix a typo in ``Target.setup()``.\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"target: Implement target runner classes"}},{"before":"a1718c37000a40b3d50e4c99f814ede3d56fcd48","after":"598c0c1d3cba98b2e463f9bcf356952d4d806b21","ref":"refs/heads/master","pushedAt":"2024-03-20T11:56:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"tools/android: Add support for creating Android virtual devices\n\nIntroduce ``tools/android/install_base.sh`` [1] script to install\nAndroid command line tools including necessary platforms and\nsystem-images for Linux and create Android Virtual Devices (AVD) for\nPixel 6 with Android v12 & v14 as well as an Android virtual *desktop*\ndevice (v13) for ChromeOS tests.\n\n[1] Forked from https://github.com/ARM-software/lisa/blob/main/install_base.sh\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"tools/android: Add support for creating Android virtual devices"}},{"before":"a83fe5238263595b462556f16bb2052ec322e3fe","after":"a1718c37000a40b3d50e4c99f814ede3d56fcd48","ref":"refs/heads/master","pushedAt":"2024-02-23T20:48:44.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"tests/test_target: Read target connection settings from a YAML file\n\nThis will be useful in automating CI tests without modifying the source\ncode.\n\nReplace unittest with pytest in order to make parameter passing to test\nfunctions easier.\n\nMove target configuration reading and generating target object outside\nof the test function. Because we will run the test function for new\ntargets and may want to add new test functions.\n\nWhile we are here, also fix pylint issues.\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"tests/test_target: Read target connection settings from a YAML file"}},{"before":"c60737c78e00204ebfaf9708e80185084db2693c","after":"a83fe5238263595b462556f16bb2052ec322e3fe","ref":"refs/heads/master","pushedAt":"2024-01-23T14:51:59.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"test_target: Add copyright statement\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"test_target: Add copyright statement"}},{"before":"f60e341d6e57ff01d62c325d4c7ef59567f535d2","after":"c60737c78e00204ebfaf9708e80185084db2693c","ref":"refs/heads/master","pushedAt":"2024-01-17T17:39:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"[Android] Fix use-before-initialization during initialization of ApkInfo\n\nI noticed the following errors during invocation of uibench/uibenchjanktests:\n\n job: Initializing job wk1 (uibench) [1]\n signal: Sending before-workload-initialized from wk1 (uibench) [1]\n apk: Resolving package on host system\nresolver: Resolving <'s apk 14>\nresolver: Trying user.get\n signal: Sending error-logged from \n signal: Disconnecting from error-logged()\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/signal.py\", line 324, in wrap\n signal: yield\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/job.py\", line 97, in initialize\n signal: self.workload.initialize(context)\n signal: File \"/repos/lisa/external/workload-automation/wa/utils/exec_control.py\", line 83, in wrapper\n signal: return method(*args, **kwargs)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/workload.py\", line 305, in initialize\n signal: self.apk.initialize(context)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/workload.py\", line 717, in initialize\n signal: self.resolve_package(context)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/workload.py\", line 734, in resolve_package\n signal: self.resolve_package_from_host(context)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/workload.py\", line 774, in resolve_package_from_host\n signal: apk_file = context.get_resource(ApkFile(self.owner,\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/execution.py\", line 197, in get_resource\n signal: result = self.resolver.get(resource, strict)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/resource.py\", line 268, in get\n signal: result = source(resource)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/getters.py\", line 139, in get\n signal: return get_from_location(directory, resource)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/getters.py\", line 106, in get_from_location\n signal: return get_generic_resource(resource, files)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/getters.py\", line 63, in get_generic_resource\n signal: if resource.match(f):\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/resource.py\", line 165, in match\n signal: uiauto_matches = uiauto_test_matches(path, self.uiauto)\n signal: File \"/repos/lisa/external/workload-automation/wa/framework/resource.py\", line 335, in uiauto_test_matches\n signal: info = get_cacheable_apk_info(path)\n signal: File \"/repos/lisa/external/workload-automation/wa/utils/android.py\", line 192, in get_cacheable_apk_info\n signal: info = ApkInfo(path)\n signal: File \"/repos/lisa/external/workload-automation/wa/utils/android.py\", line 116, in __init__\n signal: super().__init__(path)\n signal: File \"/repos/lisa/external/devlib/devlib/utils/android.py\", line 152, in __init__\n signal: self.parse(path)\n signal: File \"/repos/lisa/external/devlib/devlib/utils/android.py\", line 159, in parse\n signal: output = self._run([self._aapt, 'dump', 'badging', apk_path])\n signal:\n signal: Sending error-logged from \n signal: AttributeError('ApkInfo' object has no attribute '_aapt')\n signal: Sending after-workload-initialized from wk1 (uibench) [1]\n signal: Sending error-logged from \n runner: Skipping remaining jobs due to \"'ApkInfo' object has no attribute '_aapt'\".\n\nThis is due to the fact we might call self.parse in ApkInfo::__init__, if the\npath variable is set to a non-empty value, but the initialization of both\nself._aapt and self._aapt_version is after this call.\n\nFix this by moving the initialization of both variables before the call to\nself.parse.","shortMessageHtmlLink":"[Android] Fix use-before-initialization during initialization of ApkInfo"}},{"before":"46219ace0405c0906d7fdea4c4326b5b49db6a6b","after":"f60e341d6e57ff01d62c325d4c7ef59567f535d2","ref":"refs/heads/master","pushedAt":"2024-01-16T21:21:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Fix read_sysctl()\n\nAdd a leading \"/\" so the path is absolute.","shortMessageHtmlLink":"target: Fix read_sysctl()"}},{"before":"4589b4698ed4bac2af93a3bdbce6b4c1e4fca495","after":"46219ace0405c0906d7fdea4c4326b5b49db6a6b","ref":"refs/heads/master","pushedAt":"2024-01-16T21:20:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"android: Fix typo in ApkInfo\n\nChange self.aapt into self._aapt","shortMessageHtmlLink":"android: Fix typo in ApkInfo"}},{"before":"56746fdb333353bf6711017087fc5c72fcbf11fa","after":"4589b4698ed4bac2af93a3bdbce6b4c1e4fca495","ref":"refs/heads/master","pushedAt":"2024-01-15T21:54:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Fix typo\nChanged target variable to self because it is not defined in the file.","shortMessageHtmlLink":"target: Fix typo"}},{"before":"f30fb0b3fd5032c083bd646cfc3697bd930e8df9","after":"56746fdb333353bf6711017087fc5c72fcbf11fa","ref":"refs/heads/master","pushedAt":"2024-01-15T21:47:23.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"ssh: Fix tools detection\n\nFix inadequate use of module-level __getattr__ (it is not used by the\nglobal variable lookup path). Instead, detect all tools lazily in the\nsame fashion as with _AndroidEnv()","shortMessageHtmlLink":"ssh: Fix tools detection"}},{"before":"52485fbaa592f5b497e7df9badb118c0cb618c70","after":"f30fb0b3fd5032c083bd646cfc3697bd930e8df9","ref":"refs/heads/master","pushedAt":"2024-01-10T19:22:55.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"utils/ssh: Ensure the detected sshpass is used\n\nSince we detect the sshpass tool using which(), ensure that the code\nuses that instead of just relying on PATH.","shortMessageHtmlLink":"utils/ssh: Ensure the detected sshpass is used"}},{"before":"b8bf2abf3b384e2e8754a82730154df7448f9eb0","after":"52485fbaa592f5b497e7df9badb118c0cb618c70","ref":"refs/heads/master","pushedAt":"2024-01-09T20:07:57.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"setup.py: Re-add \"future\" PyPI package\n\nRe-add the \"future\" PyPI package since it actually contains the \"past\"\nPython package that devlib still uses.","shortMessageHtmlLink":"setup.py: Re-add \"future\" PyPI package"}},{"before":"9f71c818c43ebb374958e3dd2ced9dfed2456fb9","after":"b8bf2abf3b384e2e8754a82730154df7448f9eb0","ref":"refs/heads/master","pushedAt":"2024-01-09T20:06:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"AndroidTarget: Skip ungrantable Android permission\n\nDon't throw an error if attempting to grant a permission that\nis not manageable.","shortMessageHtmlLink":"AndroidTarget: Skip ungrantable Android permission"}},{"before":"14b4e2069bc875724c4ec83aa591c8afd6b0ea5c","after":"9f71c818c43ebb374958e3dd2ced9dfed2456fb9","ref":"refs/heads/master","pushedAt":"2024-01-09T20:06:26.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"android: Add adb_port connection setting\n\nAllow specifying the port of the adb server in use.","shortMessageHtmlLink":"android: Add adb_port connection setting"}},{"before":"5a1eb4a77856511f4b032842c318939edc0d1a7a","after":"14b4e2069bc875724c4ec83aa591c8afd6b0ea5c","ref":"refs/heads/master","pushedAt":"2024-01-09T15:39:56.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Add helper function to check Android screen's locking state\n\nIntroduce is_screen_locked() which returns true if device screen is\nlocked and false otherwise.\n\nThis will be useful to automate unlocking the screen [1].\n\nAlso fix a typo in is_screen_on()'s documentation.\n\n[1] https://github.com/ARM-software/workload-automation/pull/1246\n\nSigned-off-by: Metin Kaya ","shortMessageHtmlLink":"target: Add helper function to check Android screen's locking state"}},{"before":"d7d1deedda3268220167eedb05f4ffa3f4fcb2fc","after":"5a1eb4a77856511f4b032842c318939edc0d1a7a","ref":"refs/heads/master","pushedAt":"2023-12-12T20:18:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"UIBenchJankTests:modification to support Android 12/14 versions\ndex file search is modified. It collects all the available methods under the package name. Tested with other benchmarks (geekbench,pcmark,jankbench in Android 12) as well.","shortMessageHtmlLink":"UIBenchJankTests:modification to support Android 12/14 versions"}},{"before":"5104002f1a7a860131b4f787cd86e4e27da7f7a9","after":"d7d1deedda3268220167eedb05f4ffa3f4fcb2fc","ref":"refs/heads/master","pushedAt":"2023-11-06T16:57:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"collector/dmesg: Query systcl kernel.dmesg_restrict\n\nQuery systcl instead of checking CONFIG_SECURITY_DMESG_RESTRICT as that\noption only provides a default value for the sysctl parameter.\n\nFixes https://github.com/ARM-software/devlib/issues/653","shortMessageHtmlLink":"collector/dmesg: Query systcl kernel.dmesg_restrict"}},{"before":"90973cac080650a695cf254f856f331d0d99415f","after":"5104002f1a7a860131b4f787cd86e4e27da7f7a9","ref":"refs/heads/master","pushedAt":"2023-11-06T16:54:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"target: Update kernel version parsing for Android GKI kernels\n\nAndroid GKI kernels have versions such as:\n5.15.110-android14-11-ga6d7915820a0-ab10726252\n\nUpdate the parsing regex to include:\n* gki_abi: 10726252 in this example\n* android_version: 14 in this example\n\nThis also allows parsing the git sha1 correctly, which otherwise is\nbroken on a version like that.\n\nFixes https://github.com/ARM-software/devlib/issues/654","shortMessageHtmlLink":"target: Update kernel version parsing for Android GKI kernels"}},{"before":"9199d8884e7257155b57a8ab2baca21f78923916","after":"90973cac080650a695cf254f856f331d0d99415f","ref":"refs/heads/master","pushedAt":"2023-10-11T23:30:16.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"devlib: Make add_trip_point and add_thermal_zone private\n\nAdding thermal zones and trip points are only done at thermal module\ninitialization. There is no need for these functions to be public.\n\nSigned-off-by: Morten Rasmussen ","shortMessageHtmlLink":"devlib: Make add_trip_point and add_thermal_zone private"}},{"before":"14bb86efadafc5e4fdc761bf2a1e2677fd7c65d1","after":"9199d8884e7257155b57a8ab2baca21f78923916","ref":"refs/heads/master","pushedAt":"2023-09-21T15:54:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"ftrace: Do not read-verify buffer_size_kb value\n\nThe sysfs documentation mentions that the value written\nto buffer_size_kb ftrace field may be rounded up.\nSo skip the verify loop on this field.\n\nThe case we are worried about, a requested buffer\nsize that the target cannot fulfill is caught anyway,\nas the sysfs write returns with an error that is caught.\n\nSigned-off-by: Christian Loehle ","shortMessageHtmlLink":"ftrace: Do not read-verify buffer_size_kb value"}},{"before":"1c0223556f021cb518b68f4e64b8a6aa9f40c7de","after":"14bb86efadafc5e4fdc761bf2a1e2677fd7c65d1","ref":"refs/heads/master","pushedAt":"2023-09-12T22:04:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"collector/perfetto: Use busybox cat\n\nUse busybox cat instead of system's cat.","shortMessageHtmlLink":"collector/perfetto: Use busybox cat"}},{"before":"9b15807c179e65f3b121d36fafd3b7fa91258622","after":"1c0223556f021cb518b68f4e64b8a6aa9f40c7de","ref":"refs/heads/master","pushedAt":"2023-09-12T22:02:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"utils/ssh: Fix SSHTransferHandle when using SCP\n\nUsing SSHConnection(use_scp=True) lead to an exception:\n\n UnboundLocalError: local variable 'handle' referenced before assignment\n\nThis is cause by some (false) cyclic dependency between initialization\nof SSHTransferHandle and creation of the SCPClient. We can fix that by\nadding a level of indirection to tie together both objects.","shortMessageHtmlLink":"utils/ssh: Fix SSHTransferHandle when using SCP"}},{"before":"b5aa065f7be03502e81b66f1859c91c7e7caec2a","after":"9b15807c179e65f3b121d36fafd3b7fa91258622","ref":"refs/heads/master","pushedAt":"2023-09-06T21:48:56.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"collector: Add PerfettoCollector\n\nAdd a Collector for accessing Google's Perfetto tracing infrastructure.\nThe Collector takes a path to an on-device config file, starts tracing\nin the background using the perfetto binary and then stops by killing\nthe tracing process.\n\nSigned-off-by: Kajetan Puchalski ","shortMessageHtmlLink":"collector: Add PerfettoCollector"}},{"before":"35e7288149b7b03f493f903d28168aa53a1e04cb","after":"b5aa065f7be03502e81b66f1859c91c7e7caec2a","ref":"refs/heads/master","pushedAt":"2023-08-30T00:18:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"bin: Update busybox\n\nUpdate busybox to version 1.36.1 with defconfig and uniformly built on\nAlpine v3.18, statically linked to musl libc.\n\nBinaries were built using lisa-build-asset from LISA project:\n\n lisa-build-asset busybox --native-build","shortMessageHtmlLink":"bin: Update busybox"}},{"before":"6b09571859dfb67536ffb689285a762d7541e33f","after":"35e7288149b7b03f493f903d28168aa53a1e04cb","ref":"refs/heads/master","pushedAt":"2023-08-29T21:55:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcbonnici","name":"Marc Bonnici","path":"/marcbonnici","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22317974?s=80&v=4"},"commit":{"message":"utils/android: Use LC_ALL for adb commands\n\nEnsures that adb commands are executed with english locale since we\nsometimes match on the output.","shortMessageHtmlLink":"utils/android: Use LC_ALL for adb commands"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOUP6ygA","startCursor":null,"endCursor":null}},"title":"Activity ยท ARM-software/devlib"}