def get_sku_info(sku, config):
    """Returns a sku info dictionary for sku.

    Args:
        sku: String specifying machine's SKU.
        config: Configuration containing sku_meta.

    Returns:
        A dictionary containing sku info for the given machine sku, including
        - cpu
        - cpu usable ratio
        - memory
        - memory usable ratio
        if sku and sku_info in config["sku_meta"] are valid, None otherwise.
    """
    # Ignore invalid sku and sku_info.
    if sku is None:
        return None

    sku_meta = config.get("sku_meta", {})
    sku_info = sku_meta.get(sku, None)
    if sku_info is None:
        return None

    for key in ["cpu", "memory"]:
        if key not in sku_info:
            return None

    # Default sku_info must contain ratio info.
    # Assign 0.8 as default if default values are not defined.
    default_sku_info = sku_meta.get("default", {})

    for key in ["cpu_ratio", "memory_ratio"]:
        if key not in default_sku_info:
            default_sku_info[key] = 0.8

    # Override ratios in sku_info with default values if absent.
    for key in ["cpu_ratio", "memory_ratio"]:
        if key not in sku_info:
            sku_info[key] = default_sku_info[key]

    return sku_info