[libcamera-devel] [PATCH] libcamera: ipa_manager: Sort IPA modules by name
Jacopo Mondi
jacopo at jmondi.org
Fri Oct 4 17:03:46 CEST 2019
Hi Laurent,
On Fri, Oct 04, 2019 at 12:01:13AM +0300, Laurent Pinchart wrote:
> Sort IPA modules by name when enumerating modules in a directory in
> order to guarantee a stable ordering. This eases debugging by making
> issues more reproducible.
>
This is welcome and I think you should simply add
+ LOG(IPAManager, Debug) << "Loaded IPA module '" << path << "'";
So that we drop my: "ipa: ipa_manager: Print the loaded IPA modules path"
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/libcamera/ipa_manager.cpp | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
> index 708233e8a9c7..27aa17920bab 100644
> --- a/src/libcamera/ipa_manager.cpp
> +++ b/src/libcamera/ipa_manager.cpp
> @@ -7,6 +7,7 @@
>
> #include "ipa_manager.h"
>
> +#include <algorithm>
> #include <dirent.h>
> #include <string.h>
> #include <sys/types.h>
> @@ -112,7 +113,7 @@ int IPAManager::addDir(const char *libDir)
> if (!dir)
> return -errno;
>
> - unsigned int count = 0;
> + std::vector<std::string> paths;
> while ((ent = readdir(dir)) != nullptr) {
> int offset = strlen(ent->d_name) - 3;
> if (offset < 0)
> @@ -120,8 +121,16 @@ int IPAManager::addDir(const char *libDir)
> if (strcmp(&ent->d_name[offset], ".so"))
> continue;
>
> - IPAModule *ipaModule = new IPAModule(std::string(libDir) +
> - "/" + ent->d_name);
> + paths.push_back(std::string(libDir) + "/" + ent->d_name);
> + }
> + closedir(dir);
> +
> + /* Ensure a stable ordering of modules. */
> + std::sort(paths.begin(), paths.end());
> +
> + unsigned int count = 0;
> + for (const std::string &path : paths) {
> + IPAModule *ipaModule = new IPAModule(path);
> if (!ipaModule->isValid()) {
> delete ipaModule;
> continue;
> @@ -131,7 +140,6 @@ int IPAManager::addDir(const char *libDir)
> count++;
> }
>
> - closedir(dir);
> return count;
> }
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20191004/68e32a45/attachment.sig>
More information about the libcamera-devel
mailing list