Hi Ferruh,

These log information will not be output for the default log level is 
OPAE_LOG_ERR, they are output only when log level is set to OPAE_LOG_INFO. I 
can remove them if you think it's necessary.

All these opae_xxx functions will check the input PCI address is valid or not, 
and the rawdev PMD will also filter input PCI device ID. I think it's enough to 
prevent these function to be misused.

Thanks,
Wei

-----Original Message-----
From: Ferruh Yigit <ferruh.yi...@intel.com> 
Sent: Friday, January 22, 2021 00:30
To: Huang, Wei <wei.hu...@intel.com>; dev@dpdk.org; Xu, Rosen 
<rosen...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>
Cc: sta...@dpdk.org; Zhang, Tianfei <tianfei.zh...@intel.com>
Subject: Re: [dpdk-dev] [PATCH v11 3/4] raw/ifpga: add OPAE API for OpenStack 
Cyborg

On 1/21/2021 6:03 AM, Wei Huang wrote:
> Cyborg is an OpenStack project that aims to provide a general purpose 
> management framework for acceleration resources (i.e. various types of 
> accelerators such as GPU, FPGA, NP, ODP, DPDK/SPDK and so on).
> It needs some OPAE type APIs to manage PACs (Programmable Acceleration
> Card) with Intel FPGA. Below major functions are added to meets Cyborg 
> requirements.
> 1. opae_init() set up OPAE environment.
> 2. opae_cleanup() clean up OPAE environment.
> 3. opae_enumerate() searches PAC with specific FPGA.
> 4. opae_get_property() gets properties of FPGA.
> 5. opae_partial_reconfigure() perform partial configuration on FPGA.
> 6. opae_get_image_info() gets information of image file.
> 7. opae_update_flash() updates FPGA flash with specific image file.
> 8. opae_cancel_flash_update() cancel process of FPGA flash update.
> 9. opae_probe_device() manually probe specific FPGA with ifpga driver.
> 10. opae_remove_device() manually remove specific FPGA from ifpga driver.
> 11. opae_bind_driver() binds specific FPGA with specified kernel driver.
> 12. opae_unbind_driver() unbinds specific FPGA from kernel driver.
> 13. opae_reboot_device() reboots specific FPGA (do reconfiguration).
> 
> Signed-off-by: Wei Huang <wei.hu...@intel.com>
> Acked-by: Tianfei Zhang <tianfei.zh...@intel.com>
> Acked-by: Rosen Xu <rosen...@intel.com>

<...>

> +
> +RTE_INIT(init_api_env)
> +{
> +     eal_inited = 0;
> +     opae_log_level = OPAE_LOG_ERR;
> +     opae_log_file = NULL;
> +     ifpga_rawdev_logtype = 0;
> +
> +     opae_log_info("API environment is initialized\n"); }
> +
> +RTE_FINI(clean_api_env)
> +{
> +     if (opae_log_file) {
> +             fclose(opae_log_file);
> +             opae_log_file = NULL;
> +     }
> +     opae_log_info("API environment is cleaned\n"); }
> +

There are called in constructor and destructor, which means all DPDK 
applications have this PMD compiled will run above and print some log, is this 
really what we want here?
Is there a way to limit the initialize to the PMD context, like 'probe()' etc?

Reply via email to